The Pragmatic Programmer
It has taken me considerably longer than a year. But I might not be smart. And I've tried to do it on my own, rather than taking a job (see prior sentence). Caveat: I'm not a developer, so my comments about learning how to program should be taken with considerable skepticism. But I have some opinions based my effort to learn. For me, programming syntax is less a problem for me than poorly organized code, poor grasp of problems and poorly thought out solutions. Design is a subtle and important topic that does not lend itself to the shorter coverage typical of internet material.…
How much value is there in formal proof that a program optimally meets precisely-described requirements if the requirements themselves are sub-optimal for the problem area of concern? In other words, "software is hard": https://www.gamearchitect.net/Articles/SoftwareIsHard.html "The difference is that the overruns on a physical construction project are bounded. You never get to the point where you have to hammer in a nail and discover that the nail will take an estimated six months of research and development, with a high level of uncertainty. But software is fractal in complexity. If…
> It's a beginner's book, not for someone who have been trying to improve their code (and processes around it) already for some years. Yes -- a beginner's book for someone starting now, but essential for everybody in the industry nonetheless. Pragmatic Programmer has influenced enough people that it has changed the industry for better. These ideas and practices may sound common sense now, but were not until popularized -- I suspect -- by Pragmatic Programmer. If you found good practices already entrenched in the ecosystem when you joined the industry, the roots can be traced back to a few…
I read "The Pragmatic Programmer" about two years back and back then I felt inspired and excited about all the wonderful ideas shown in the book. Fast forward to today, it seems that stuff was kinda obvious - automate things, read, take responsibility, care for the craft, be patient and the other forty tips. I kind of believe that, have I not read the book, I would have stumbled upon the ideas later anyhow, by reading blogs, tinkering, and making mistakes. Albeit, it is wrong to expect any magical words that can shift your direction completely, but still I am not sure how much value do…
There are many different things you can do, but it all comes down to: do your programmers care? If they don't at all, it will be impossible to make them improve. If they care a lot, they will improve themselves. If they care a little, that's where you can try some of the strategies others have given here. As for my specific suggestions, I would recommend "The Pragmatic Programmer: From Journeyman to Master", and actually apply the principles in the book yourself. Use unit tests, setup CI (such as Jenkins), a code review system (such as Gerrit), a bug tracker, code analysis (such as Sonar),…
RE: Picking your axe Your wish list is all over the place. It would help to pick one of the goals listed (i.e. Ruby, or Node, or Python) and hone in on that. Once you figure out what language you want to learn, devour everything on the topic from these sources: * Peepcode tutorials * Slideshare slideshows * Youtube videos or other longform tutorials Get a Hello World example running in your new language, and then see if you can get it wired up to a database. Congrats, now you're up and running... It's not sexy or new, but the book the Pragmatic Programmer is the bible on how to become a…
Read The Pragmatic Programmer, then Code Complete 2. These books will help you approach problems and people. Most important thing I've learned is to write code other people can read. A lot of times that person can be future you. Learn design patterns, approaches to getting requirements, and how to read/create diagrams. Learn how to write unit tests. Learn source control tools and how to use them. If it's a command line, know how to do this from the command line. Learn best practices for your language and get really good at your editor/IDE. (For instance, I use VIM with syntastic and…
Slow reader here - I’ve picked up reading much more in recent years after always wanting to build a habit as well! Some ideas that have helped build that habit: - The Pragmatic Programmer (great book) recommends reading one technical book per quarter to invest in yourself. If you read one book per year, you’re still doing better than most . With that, I try to read a “professional” book every morning (I’ve gotten a ton of recommendations from https://leadership-library.dev). I’ve also found that when it comes to topics like leadership, I get a lot more depth through books than blog posts…
> How do you modify functions over 1000 lines long? I don't modify them. I refactor and replace them. I do it carefully, and with hatred in my heart for the pusbags who couldn't be bothered to get it right the first time. First, I curse the people who let these functions get that big in the first place. My go-to is the PERP (public explosive rectal prolapse) because I think people who write such gargantuan methods deserve to shit themselves to death, but for particularly egregious cases I find myself praying that the original authors' children grow up to be everything they hate and fear.…
Your point about key bindings is very prescient. At my work, our book club is (re)reading The Pragmatic Programmer. There's a section which advocates picking one text editor, mastering its arcane secrets, customizing it until it's perfect, and never using anything else. All my colleagues happily agreed with this, and I couldn't quite express why I didn't. Then I did a bit of pair programming with a few different people. In every case there was a significant learning curve just to follow what the driver was doing in their comfortable editing environment, and in the most customized cases, it…