Download the AI & Machine Learning For Dummies App: iOS - Android
What is the single most influential book every Programmers should read
There are a lot of books that can be influential to programmers. But, what is the one book that every programmer should read? This is a question that has been asked by many, and it is still up for debate. However, there are some great contenders for this title. In this blog post, we will discuss three possible books that could be called the most influential book for programmers. So, what are you waiting for? Keep reading to find out more!
What are the concepts every Java C# C++ Python Rust programmer must know?
Ok…I think this is one of the most important questions to answer. According to the my personal experience as a Programmer, I would say you must learn following 5 universal core concepts of programming to become a successful Java programmer.
(1) Mastering the fundamentals of Java programming Language – This is the most important skill that you must learn to become successful java programmer. You must master the fundamentals of the language, specially the areas like OOP, Collections, Generics, Concurrency, I/O, Stings, Exception handling, Inner Classes and JVM architecture.
(2) Data Structures and Algorithms – Programming languages are basically just a tool to solve problems. Problems generally has data to process on to make some decisions and we have to build a procedure to solve that specific problem domain. In any real life complexity of the problem domain and the data we have to handle would be very large. That’s why it is essential to knowing basic data structures like Arrays, Linked Lists, Stacks, Queues, Trees, Heap, Dictionaries ,Hash Tables and Graphs and also basic algorithms like Searching, Sorting, Hashing, Graph algorithms, Greedy algorithms and Dynamic Programming.
(3) Design Patterns – Design patterns are general reusable solution to a commonly occurring problem within a given context in software design and they are absolutely crucial as hard core Java Programmer. If you don’t use design patterns you will write much more code, it will be buggy and hard to understand and refactor, not to mention untestable and they are really great way for communicating your intent very quickly with other programmers.
(4) Programming Best Practices – Programming is not only about learning and writing code. Code readability is a universal subject in the world of computer programming. It helps standardize products and help reduce future maintenance cost. Best practices helps you, as a programmer to think differently and improves problem solving attitude within you. A simple program can be written in many ways if given to multiple developers. Thus the need to best practices come into picture and every programmer must aware about these things.
(5) Testing and Debugging (T&D) – As you know about the writing the code for specific problem domain, you have to learn how to test that code snippet and debug it when it is needed. Some programmers skip their unit testing or other testing methodology part and leave it to QA guys. That will lead to delivering 80% bugs hiding in your code to the QA team and reduce the productivity and risking and pushing your project boundaries to failure. When a miss behavior or bug occurred within your code when the testing phase. It is essential to know about the debugging techniques to identify that bug and its root cause.
I hope these instructions will help you to become a successful Java Programmer. Here i am explain only the universal core concepts that you must learn as successful programmer. I am not mentioning any technologies that Java programmer must know such as Spring, Hibernate, Micro-Servicers and Build tools, because that can be change according to the problem domain or environment that you are currently working on…..Happy Coding!
Summary: There’s no doubt that books have had a profound influence on society and the advancement of human knowledge. But which book is the most influential for programmers? Some might say it’s The Art of Computer Programming, or The Pragmatic Programmer. But I would argue that the most influential book for programmers is CODE: The Hidden Language of Computer Hardware and Software. In CODE, author Charles Petzold takes you on a journey from the basics of computer hardware to the intricate workings of software. Along the way, you learn how to write code in Assembly language, and gain an understanding of how computers work at a fundamental level. If you’re serious about becoming a programmer, then CODE should be at the top of your reading list!
Hello, everyone! I'd love to share something I made! I've been fascinated by linear logic and session types for a while and found it sad it's not really applied in practice. There is a lot of wonderful research on how concurrency can be made structured and robust this way, here are some papers I'd recommend: Propositions as sessions Par means parallel: multiplicative linear logic proofs as concurrent functional programs Client-server sessions in linear logic Session types revisited The reason seems to be it's hard to design libraries, or even languages, that employ these concepts in an ergonomic and easy to use way. So, here's my take on trying to do better. Let me show you a new library I made, which I shamelessly called 'par'. Crates.io: https://crates.io/crates/par GitHub: https://github.com/faiface/par Let me know what you think! If you want to join and contribute, you're very welcome as well! Features Specify full concurrent protocols — Sequencing, branching, recursion, higher-order patterns. Type-checked protocol adherence — Expectations delivered, obligations fulfilled. Deadlock freedom — Cyclic communication is statically ruled out. Multiple concurrent participants. Fits well with Rust's type system: Use enums for making choices. Use recursion on types for cyclic protocols. Built on top of async/.await. Runtime agnostic. Ergonomic design — eg. atm.choose(Operation::CheckBalance) Standard patterns in modules: Queue — Transmit an arbitrary number of items in order. Server — Handle a dynamic number of clients concurrently. No unsafe! Accessible documentation as a learning tool. submitted by /u/faiface [link] [comments]
Dans un marché en constante évolution, les compétences en codage ne sont plus une option mais une nécessité. La prochaine génération…Continue reading on Medium »
La notion de variable est l’une des plus basiques dans le monde de la programmation et peut-être même la plus importante, car les autres…Continue reading on Medium »
If you’re looking for a way to accelerate your learning and make programming more interactive, consider trying pair programming. This…Continue reading on Small Magics for Programmers »
Are you a seasoned .NET developer looking to take your LINQ skills to the next level? Welcome! In this comprehensive guide, we’ll dive…Continue reading on ByteHide »
Hey guys! Welcome to the Data Science and Analytics Series of ours. We’ve already covered the fundamentals and some visualizations in this…Continue reading on Medium »
Hello fellow programs! tl;dr some revisions to the rules to reduce low quality blogspam. The most notable are: banning listicles ("7 cool things I copy-pasted from somebody else!"), extreme beginner articles ("how to use a for loop"), and some limitations on career posts (they must be related to programming careers). Lastly, I want feedback on these changes and the subreddit in general and invite you to vote and use the report button when you see posts that violate the rules because they'll help us get to it faster. r/programming's mission is to be the place with the highest quality programming content, where I can go to read something interesting and learn something new every day. Last time we spoke I introduced the rules that we've been moderating by to accomplish that. Subjectively, quality on the subreddit while not perfect is much improved since then. Since it's still mainly just me moderating it's hard to tell what's objectively bad vs what just annoys me personally, and to do that I've been keeping an eye on a few forms of content to see how they perform (using mostly votes and comment quantity & health). Based on that the notable changes are: 🚫 Listicles. "7 cool python functions", "14 ways to get promoted". These are usually spammy content farms. If you found 15 amazing open source projects that will blow my mind, post those projects instead. 🚫 Extreme beginner content ("how to write a for loop"). This is difficult to identify objectively (how can you tell it from good articles like "how does kafka work?" or "getting started with linear algebra for ML"?) so there will be some back and forth on calibrating, but there has been a swath of very low quality "tutorials" if you can even call them that, that I very much doubt anybody is actually learning anything from and they sit at 0 points. Since "what is a variable?" is probably not useful to anybody already reading r/programming this is a quick painless way to boost the average quality on the subreddit. ⚠️ Career posts must be related to software engineering careers. To be honest I'm personally not a fan of career posts on r/programming at all (but shout out to cscareerquestions!) but during the last rules revision they were doing pretty well so I know there is an audience for it that I don't want to get in the way of. Since then there has been growth in this category all across the quality spectrum (with an accompanying rise in product management methodology like "agile vs waterfall", also across the quality spectrum). Going forward these posts must be distinctly related to software engineering careers rather than just generic working. This isn't a huge problem yet but I predict that it will be as the percentage of career content is growing. In all of these cases the category is more of a tell that the quality is probably low, so exceptions will be made where that's not the case. These are difficult categories to moderate by so I'll probably make some mistakes on the boundaries and that's okay, let me know and we'll figure it out. Some other categories that I'm keeping an eye on but not ruling on today are: Corporate blogs simply describing their product in the guise of "what is an authorisation framework?" (I'm looking at you Auth0 and others like it). Pretty much anything with a rocket ship emoji in it. Companies use their blogs as marketing, branding, and recruiting tools and that's okay when it's "writing a good article will make people think of us" but it doesn't go here if it's just a literal advert. Usually they are titled in a way that I don't spot them until somebody reports it or mentions it in the comments. Generic AI content that isn't technical in content. "Does Devin mean that programming is over?", "Will AI put farmers out of work?", "Is AI art?". For a few weeks these were the titles of about 20 articles per day, some scoring high and some low. Fashions like this come and go but I'm keeping an eye on it. Newsletters: There are a few people that post every edition of their newsletter to reddit, where that newsletter is really just aggregating content from elsewhere. It's clear that they are trying to grow a monetised audience using reddit, but that's okay if it's providing valuable curation or if the content is good and people like it. So we'll see. Career posts. Personally I'd like r/programming to be a deeply technical place but as mentioned there's clearly an audience for career advice. That said, the posts that are scoring the highest in this category are mostly people upvoting to agree with a statement in the title, not something that anybody is learning from. ("Don't make your engineers context-switch." "Everybody should get private offices." "Micromanaging sucks.") The ones that one could actually learn from with an instructive lean mostly don't do well; people seem to not really be interested in how to have the best 1:1s with their managers or how you went from Junior to Senior in 18 hours (though sometimes they are). That tells me that there's some subtlety to why these posts are scoring well and I'm keeping an eye on the category. What I don't want is for "vote up if you want free snacks" to push out the good stuff or to be a farm for the other 90% of content that's really just personal brand builders. I'm sure you're as annoyed as I am about these but they're fuzzy lines and difficult to come up with objective criteria around. As always I'm looking for feedback on these and if I'm missing any and any other points regarding the subreddit and moderation so let me know what you think. The rules! With all of that, here is the current set of the rules with the above changes included so I can link to them all in one place. ✅ means that it's currently allowed, 🚫 means that it's not currently allowed, ⚠️ means that we leave it up if it is already popular but if we catch it young in its life we do try to remove it early. ✅ Actual programming content. They probably have actual code in them. Language or library writeups, papers, technology descriptions. How an allocator works. How my new fancy allocator I just wrote works. How our startup built our Frobnicator. For many years this was the only category of allowed content. ✅ Academic CS or programming papers ✅ Programming news. ChatGPT can write code. A big new CVE just dropped. Curl 8.01 released now with Coffee over IP support. ✅ Programmer career content. How to become a Staff engineer in 30 days. Habits of the best engineering managers. These must be related or specific to programming/software engineering careers in some way ✅ Articles/news interesting to programmers but not about programming. Work from home is bullshit. Return to office is bullshit. There's a Steam sale on programming games. Terry Davis has died. How to SCRUMM. App Store commissions are going up. How to hire a more diverse development team. Interviewing programmers is broken. ⚠️ General technology news. Google buys its last competitor. A self driving car hit a pedestrian. Twitter is collapsing. Oculus accidentally showed your grandmother a penis. Github sued when Copilot produces the complete works of Harry Potter in a code comment. Meta cancels work from home. Gnome dropped a feature I like. How to run Stable Diffusion to generate pictures of, uh, cats, yeah it's definitely just for cats. A bitcoin VR metaversed my AI and now my app store is mobile social local. 🚫 Politics. The Pirate Party is winning in Sweden. Please vote for net neutrality. Big Tech is being sued in Europe for gestures broadly. Grace Hopper Conference is now 60% male. 🚫 Gossip. Richard Stallman switches to Windows. Elon Musk farted. Linus Torvalds was a poopy-head on a mailing list. The People's Rust Foundation is arguing with the Rust Foundation For The People. Terraform has been forked into Terra and Form. Stack Overflow sucks now. Stack Overflow is good actually. ✅ Demos with code. I wrote a game, here it is on GitHub 🚫 Demos without code. I wrote a game, come buy it! Please give me feedback on my startup (totally not an ad nosirree). I stayed up all night writing a commercial text editor, here's the pricing page. I made a DALL-E image generator. I made the fifteenth animation of A* this week, here's a GIF. 🚫 AskReddit type forum questions. What's your favourite programming language? Tabs or spaces? Does anyone else hate it when. 🚫 Support questions. How do I write a web crawler? How do I get into programming? Where's my missing semicolon? Please do this obvious homework problem for me. Personally I feel very strongly about not allowing these because they'd quickly drown out all of the actual content I come to see, and there are already much more effective places to get them answered anyway. In real life the quality of the ones that we see is also universally very low. 🚫 Surveys and 🚫 Job postings and anything else that is looking to extract value from a place a lot of programmers hang out without contributing anything itself. 🚫 Meta posts. DAE think r/programming sucks? Why did you remove my post? Why did you ban this user that is totes not me I swear I'm just asking questions. Except this meta post. This one is okay because I'm a tyrant that the rules don't apply to (I assume you are saying about me to yourself right now). 🚫 Images, memes, anything low-effort or low-content. Thankfully we very rarely see any of this so there's not much to remove but like support questions once you have a few of these they tend to totally take over because it's easier to make a meme than to write a paper and also easier to vote on a meme than to read a paper. ⚠️ Posts that we'd normally allow but that are obviously, unquestioningly super low quality like blogspam copy-pasted onto a site with a bazillion ads. It has to be pretty bad before we remove it and even then sometimes these are the first post to get traction about a news event so we leave them up if they're the best discussion going on about the news event. There's a lot of grey area here with CVE announcements in particular: there are a lot of spammy security "blogs" that syndicate stories like this. Pretty much all listicles are disallowed under this rule. 7 cool python functions. 14 ways to get promoted. If you found 15 amazing open source projects that will blow my mind, post those projects instead. ⚠️ Extreme beginner content. What is a variable. What is a for loop. Making an HTPT request using curl. Like listicles this is disallowed because of the quality typical to them, but high quality tutorials are still allowed and actively encouraged. ⚠️ Posts that are duplicates of other posts or the same news event. We leave up either the first one or the healthiest discussion. ⚠️ Posts where the title editorialises too heavily or especially is a lie or conspiracy theory. Comments are only very loosely moderated and it's mostly 🚫 Bots of any kind (Beep boop you misspelled misspelled!) and 🚫 Incivility (You idiot, everybody knows that my favourite toy is better than your favourite toy.) However the number of obvious GPT comment bots is rising and will quickly become untenable for the number of active moderators we have. submitted by /u/ketralnis [link] [comments]
submitted by /u/TylerFortier_Photo [link] [comments]
Today I Learned (TIL) You learn something new every day; what did you learn today? Submit interesting and specific facts about something that you just found out here.
Reddit Science This community is a place to share and discuss new scientific research. Read about the latest advances in astronomy, biology, medicine, physics, social science, and more. Find and submit new publications and popular science coverage of current research.