Technology evolves so rapidly that those aspiring to enter the field are often overwhelmed by the volume of information available to them, to the point where they cannot decide where to begin learning about it.
Those already some way into their journey face the quandary of deciding what to prioritise and which technologies to use for specific projects, or as a foundation for the rest of their career.
The work itself is difficult, and so sometimes inspiration is required to reenergise the spirit. Fortunately, a lot of successful programmers are great writers, too, and their musings range from guides about navigating the field itself to more general – perhaps even philosophical – takes about life from a programmer’s perspective.
TechCentral compiled a list of five blog posts we believe every aspiring programmer should read:
1. Peter Norvig – Teach yourself programming in 10 years
“Why is everybody in such a rush?” That’s how Peter Norvig, director of research at Google, begins this insightful read about the importance of taking a long-term view on learning the craft of programming. Written at a time when many of Amazon’s bestsellers had titles such as Teach Yourself Java in 24 Hours, Norvig draws on talent development research and Malcom Gladwell’s 10 000-hour rule, mixing these with pearls of wisdom gained through experience, to help aspiring developers plot an effective long-term learning path with mastery as the end goal.
Norvig’s guide applies to programmers of all backgrounds and inclinations, regardless of whether they take the self-taught or institutional path towards starting their career.
“So, go ahead and buy that Java/Ruby/Javascript/PHP book; you’ll probably get some use out of it. But you won’t change your life, or your real overall expertise as a programmer in 24 hours or 21 days. How about working hard to continually improve over 24 months? Well, now you’re starting to get somewhere,” said Norvig.
2. Joel Spolsky – The perils of Java schools
Nowadays the leading result on a Joel Spolsky Google search has the description “American blogger” under the former software project manager and programmer’s name. Although this points to the massive success of his Joel on Software blog, it does overshadow his achievements as a developer, which are by no means any less remarkable. Spolsky was a project manager for the Microsoft Excel team in the early 1990s, created the project management software Trello and co-founded Stack Overflow, a leading community forum for developers.
In this particular post, Spolsky goes on a self-described “senile” rant about how difficult hiring software talent has become because “kids nowadays are so lazy”. He goes on to warn students of computer science and other IT-related fields about the dangers of avoiding difficult courses in their university years, saying that harder courses open the door to a wider range of opportunities later in their careers. Parents of students interested in computing courses may find his insights useful when helping their children choose between different institutions.
Read: The IT skills in demand in South Africa
“I used to be able to tell the smart kids because they could rip through a recursive algorithm in seconds, or implement linked-list manipulation functions using pointers as fast as they could write on the whiteboard,” said Spolsky.
“But with a ‘JavaSchool’ grad, I can’t tell if they’re struggling with these problems because they are undereducated or if they’re struggling with these problems because they don’t actually have that special part of the brain that they’re going to need to do great programming work.”
3. Paul Graham – How to work hard
Paul Graham is an English computer scientist and essayist. In the early days of the internet, he founded Viaweb, a web tool that allowed users to make their own online stores. Viaweb was sold to Yahoo for US$49.6-million in 1998. Graham also founded the Hacker News website, but he is best known for Y-Combinator, a seed investment company whose most notable successes include Airbnb, Dropbox and Twitch.
Graham’s body of work varies from hard technical analysis to insights into the social problems that people who are typically drawn to a career in IT suffer from and how to navigate them. In this particular essay, he outlines the importance of hard work as an essential ingredient for success. Using examples like that of Bill Gates, who “took no days off in his 20s”, Graham shows some of the common traps that “smart” people fall into that lure them into laziness.
“There are three ingredients in great work: natural ability, practice, and effort. You can do pretty well with just two, but to do the best work you need all three: you need great natural ability and to have practised a lot and to be trying very hard,” said Graham.
4. Eric S Raymond – The Loginataka
Eric S Raymond is an advocate for open-source software and has written some of the most iconic books in the genre. His most famous works are The Art of Unix Programming, which has a strong technical focus, and The Cathedral and the Bazaar – a treatise on the merits of developing open-source software.
While his website features a number of technical how-to guides relating to hackerdom, “The Loginataka” is a piece of creative writing that makes a number of references to sci-fi pop culture that serves as more of an inspiration than a how-to. The story takes the form of a dialogue between a Unix master and his student.
Read: South Africa plans to offer ‘digital nomad’ visas
“O, Nobly Born: know that the Way to Wizardhood is long, and winding, and Fraught with Risks. Thou must Attune thyself with the Source, attaining the arcane Knowledge and Conversation of the System Libraries and Internals. Yea; and such an all-consuming Time and Energy Sink is this as to greatly Imperil thy Grade Point Average (if one thou hast), not to mention thy Sex Life (if one thou hast). But persevere, oh Larval One; rewards beyond the Dreams of Lusers await thee!,” says the master.
Readers who enjoy this style of writing will also like Zen-like flavour of The Unix Koans of Master Foo, although their original author remains unknown.
5. Nelson Elhage – Computers can be understood
Nelson Elhage is an engineer and researcher at Anthropic, a company focused on AI safety and research. He is a seasoned Ruby developer and was part of the founding members of the Sorbet project, a type checker for the Ruby language. He is also an avid Linux hacker with multiple contributions to open-source projects.
In this post, Elhage posits that a step away from the mindset that computers are somehow magical in their function is key to developing a deeper understanding of their inner workings. By elucidating some of the ways of how the understanding of a complex system can be developed – including the reading of source code, documentation and reverse engineering – Ehlage outlines the mindset required to approach this process effectively.
The post is perfect for anyone who is overwhelmed by the complexity that understanding computer system often presents.
Read: 10 most expensive private schools in South Africa
“You will never understand every detail of the implementation of every level on that stack; but you can understand all of them to some level of abstraction, and any specific layer to essentially any depth necessary for any purpose,” said Elhage. – © 2024 NewsCentral Media