DEV Community

Cover image for One Crazy Trick to Become a Programmer

One Crazy Trick to Become a Programmer

Adam Nathaniel Davis on September 27, 2020

I generally despise "How To Become A Programmer" articles. They're chock-full of useless bromides and pointless anecdotes. They're like the endles...
Collapse
 
jsmanifest profile image
jsmanifest

"Write more code" is key. But what is actually most important when you do that, is what you're doing when you are "writing more code". I've made the biggest mistake writing code endlessly without prioritizing learning new materials at the same time. What I'm saying is that I actually wasted a lot of my time writing a lot of code using bad practices or writing code that were written in a way where there were more performant/cleaner ways to write them and I realized that I kept writing code that i only knew what I was exposed to. It's all because I didn't spend more time reading online resources that basically gave better examples to bad practices and explanations of why we shouldn't do this or that. It's best to divide your time writing code and go through learning materials at the same time so you get the most of learning through exposure, trial and error instead of continously writing only the code that you know at the top of your head due to the lack of exposure.

Collapse
 
preciouschicken profile image
Precious Chicken

There's a talk by 'Uncle' Bob Martin called "The Future of Programming", where he argues the barrier to entry is in fact too low considering the importance of what the software industry does. Not sure I agree with it, but an interesting perspective.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

I can understand the sentiment. But even if we agree with the concept, it wouldn't actually change anything about the barrier to entry. I don't think there's anything you could do to artificially raise the barrier.

For example, one way to raise the barrier is to require everyone to have 4-year degrees - or even higher degrees. To be clear, I think this would be a horrible idea, but it's theoretically possible. However, it would be almost impossible to implement. Companies, with real-life programming problems to solve, and a shortage of talent to solve them, won't forgo talented candidates if they realize that good, potential employees can be had who do not possess a degree.

You can also raise such barriers with regulations (e.g., requiring every programmer to be "certified" or have some sort of special license). But such approaches would require broad societal support. Any such proposal would probably be dead on arrival.

Nevertheless, I do somewhat agree with the original idea. In theory, anyone with a keyboard can call themselves a "programmer". And if an employer is not careful, that "programmer" could find themselves working on critical systems that control medicine, finance, government, etc.

Collapse
 
preciouschicken profile image
Precious Chicken

You can also raise such barriers with regulations (e.g., requiring every programmer to be "certified" or have some sort of special license). But such approaches would require broad societal support. Any such proposal would probably be dead on arrival.

If the barrier was raised (like Bob is proposing), I think this would be the pathway. After all if many states demand you need a licence to braid hair, then you can see how they could get onboard with something like licences for programmers. Though admittedly rather different sectors...

I personally don't support the idea. I could see unintended consequences for reducing social mobility (as it is more difficult to get into the career without resources) and innovation (as college drop outs find it harder to start the next big thing). I also suspect it might not help that much in critical systems - you would hope that organisations working on those systems would have their own vetting procedures in place as is (for reasons of reputational damage if nothing else).

I do think that reasonable people can disagree over this however. And there are some other potential advantages (apart from the obvious quality one) too - for instance you wonder how many hours are wasted by people re-creating the wheel when they don't know a solution already exists, a higher barrier might help this (as they would learn about already existing tech).

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

Haha, nice awesome truth bombs and I chuckled on the back and forth.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Thank you!

Collapse
 
nibble profile image
Joseph Mawa

This is the only article about how to become a programmer that I have read till the end. Very useful and entertaining article.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Thank you!

Collapse
 
kretaceous profile image
Abhijit Hota

The Aspiring Coder Debate actually lifted my spirits.

Very well written! Thanks.

Collapse
 
singh profile image
Singh • Edited

Awesome read. This article could have been titled 'Advice for young programmers'.

Collapse
 
dvddpl profile image
Davide de Paolis

golden

Collapse
 
log67 profile image
Mehran Einakchi

Nice article! Btw "Dreaming In Code" is the title of a book about software programming. It is a good read

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

I will need to check it out.