Readit News logoReadit News
Posted by u/newsoul 3 years ago
Ask HN: What are the reasons behind your success as a self-taught programmer?
Considering that you started programming on your own as a self learner and have found success (whatever that means to you) as a programmer in life, what do you think were the reasons behind that?

Was it:

1. Formal CS or Math education alongside or later on?

2. Pure grit and consistency in completing stuff you started

3. Working in real projects at industry

4. Something else entirely

pencilguin · 3 years ago
Here is a secret: everyone who achieves anything is self-taught.

Even people who went to a university only learned from the work they did. Most of what they learned wasn't on the syllabus. So, treat everything you do as a thing you can learn from. In any textbook you pick up, do all the exercises.

The main thing I learned in engineering school and used after was that not knowing how to do a thing did not mean I could not do it.

If you have to do a thing again, do it better than last time. Maybe the result could be better, or you could get there with less wasted time. Always devote some attention to how you could be better than you are.

GenerocUsername · 3 years ago
Sure, but that's not really news. Everything anyone does they do themselves.

I think the real distinction between self-taught and formally taught comes down to sequencing and structure.

Self taught people don't always know what the next step is, whereas university or a good mentor can pull you towards the next hop by structuring the lessons into a sequence which naturally goes from a to b to c to d whereas self taught individuals sometimes swing from a to d before coming back and learning c sometimes entirely missing b.

jacobmartinez3d · 3 years ago
Very well said!!
newsoul · 3 years ago
Fantastically put into words!!
DarrenDev · 3 years ago
1. Working for a couple of small startups in the early years, which meant writing code 8 hours a day for 6 years and being responsible for delivering not just features but full products to users from the very first year.

If my first job had been at a larger company, filled with meetings and processes, I never would have built up strong confidence writing code, coming up with solutions and building things.

2. Starting out 20+ years ago, when Googling the answer wasn't possible also played a huge part. Coupled with a 1 above, it meant that the only way to solve a problem or to work out how to do something was to work through it over hours and days myself.

My early solutions to unusual problems or tech shortcomings were not always ideal, but they always worked.

Both of these helped build up confidence in my own abilities, a knowledge that there's no problem I couldn't solve, and the certainty that I was fully capable of building whatever I wanted or needed to build.

Deleted Comment

schwartzworld · 3 years ago
1. No formal math or CS education, although I heard about functional programming early on. I'm primarily a react dev, so functional programming knowledge is like a superpower.

2. I built a lot of little projects, but most not to "completion". I did take 3 freelance projects for way too little money (don't recommend undercharging), and those did get to a "complete" stage.

Eventually I got a job, at which point there stops being a difference between "self-taught" or "cs grad" because an engineer is always learning / teaching themselves at work. Most of what a web dev does day to day has little to do with the topics taught in a traditional CS major. Once i was working in the industry, I used work as a chance to keep growing and adding to my toolbox. This is not something everybody does.

I used to have a sense of inferiority to CS grads, but I actually think being self-taught prepared me well for the day-to-day job of a developer.

dist1ll · 3 years ago
Obsessive curiousity and geniune love for programming. Grit, work ethic and growth mindset follows pretty naturally when you love what you do :)
endorphine · 3 years ago
Came here to say this. For me it was just obsessive curiosity and loving building stuff with computers, whether it was websites, or trying to code up a virus.
jacobmartinez3d · 3 years ago
“Obsessive curiosity” is a fantastic phrase I failed to mention in my response - 100% agree!
wraptile · 3 years ago
Computing is such a wonder to me that I couldn't imagine my life without it. This invention fundamentally changed what it is to be human imo and if you can accept and embrace this fact then everything else comes naturally.
bambataa · 3 years ago
Aren’t you going to get a lot of survivorship bias here?

I am self taught, then went to a boot camp and now work at a FAANG. Things that helped:

1) Making challenging projects.

2) Spending lots of time reading CS books. Ended up writing https://thecomputersciencebook.com.

3) “Obsessive curiosity”.

4) Going to a top university (for non-CS).

5) Looking like a stereotypical programmer.

Terretta · 3 years ago
> Aren’t you going to get a lot of survivorship bias here?

So, (0) Survive, then. :-)

jonathanlydall · 3 years ago
For me it was “2. Pure grit and consistency in completing stuff you started”.

A solo public hobby project meant that I landed up having a kind of “portfolio” for my first actual software development job.

I was also lucky that the interviewers were cognisant of my background and the questions focused on asking me to explain my technical decisions and how I solved problems. They were essentially gauging my general software development aptitude and potential.

For the job I landed I had to learn C# (had only done PHP, ASP classic and JavaScript before), but I picked it up pretty quickly.

The other thing I realised after having the job for a while was that the fact I had seen the hobby project through to actually releasing something pretty polished was far more significant an achievement than I originally gave myself credit for as many supposedly “professional” developers haven’t achieved this.

Overall, a good bit of luck, but I was able to capitalise well on it due my being a bit of a “natural” when it comes to software development.

jonfw · 3 years ago
I’m not sure I count- I learned to program on my own but went to college and got a comp sci degree before I made a dollar doing it.

1. The most useful stuff I learned in school was concurrency related, things like mutex or mapreduce. I may not have looked into those skills on my own

2. I don’t do that. If I start a passion project, most of the time it either turns into a tiny Proof of concept, or I learn a lesson and quit working on it. I don’t regret that at all

3. I had a sales engineer style role as my first job- it was great to get exposure to how a variety of companies run things and I still reference that experience all the time. Now working as a developer- you learn a lot more about the trade offs of various decisions when you’ve got to maintain the thing later on, so that’s been really valuable as well

JamesSwift · 3 years ago
Like most engineering disciplines, there are two aspects to a successful career: theoretical knowledge, and practical knowledge. If you go the self-taught route you will have practical knowledge, but lack theoretical. If you go university it will be the inverse. The secret in both cases is that you _must fill in the gaps that you lack_. Too many "self-taught" dont actually hit the books and fill in the theory gap.

Also as another poster mentioned, starting off at a startup was basically steroids from a "practical knowledge" perspective. I got my first job as a self-taught rails dev with 1 personal site in my portfolio, and left 4 years later with experience in:

  - native mobile dev (both ios and android)  
  - infrastructure management (chef, ansible, vagrant)  
  - server administration on both AWS and colo setups  
  - debugging + fixing performance/scaling issues in production apps  
  - Miscellaneous knowledge in PHP, React, sinatra, ruby in general
Most of those things I was introduced to in some capacity in the first 2 years honestly. Now that I've had the opportunity to go to several other companies, its clear that my willingness to get into unknown technology and figure things out the same way I was forced to at the startup is probably the biggest "super power" I have now. People in general really prefer to stay in their own lane tech wise I've found.