Hacker News new | past | comments | ask | show | jobs | submit login
How I learned to code in my 30s (medium.com/udacity)
415 points by bradcrispin on June 27, 2017 | hide | past | favorite | 199 comments



I started to learn to code last November at 37yo.

About 30 hours a week for two months I finished the Front End Certificate from freeCodeCamp (highly recommend the site for starters). Then I decided it was better to build my own projects with the tech I wanted to learn (mostly React) using official documentation and tutorials. This is what I accomplished in around 3 months: www.rodrigo-pontes.glitch.me

Then I started to apply to jobs. After around 4 rejections, last week I started as Front End Junior Developer (using Ember actually) at a funded fintech startup with a great learning environment for the tech team.

Very proud of my accomplishment so far, but I know the rough part is only starting.


I've been clicking on your 'hacker news best comments' button for like twenty minutes now... you weren't kidding when you said 'basically a time waster' :P

Seriously, really good looking stuff for your early projects! I'm not surprised someone picked you up :)

http://www.opusnota.com/hnbc


I'm curious how hnbc even works. AFAICT there's no way to see how many upvotes someone else's comment has gotten. Is the upvote number shown through the hn API?


Algolia's API show comments upvotes up to 2014 I think. So basically hnbc only shows old comments.


Really addicting! Thanks for a great time-killer!


This is Quincy with freeCodeCamp. Congratulations on your new job, and your diverse portfolio.

Getting a job as a new developer after only 4 rejections is a great batting average. Sean Smith rejected 192 times before getting a job at Trustar. https://medium.freecodecamp.org/how-i-learned-to-code-and-ea...


Sean Smith's story is so inspiring. It teaches us that if you can afford to work unpaid for 7+ hours per day, 50+ hours per week for a whole year and move to one of the most expensive cities in the world without a job, then you can truly achieve anything.


This is currently the wall I find myself staring at. I feel like I'm barely over the theshold, and I can't afford to keep doing it this way, I'll have to get permanent work soon.

I definitely can't afford to move to San Francisco.


You could learn to do coding by working remotely, but I think a key thing is finding someone to help point the way toward what you need to learn. In a cheap town without much going on, you might have more time to focus. But how do you connect with someone to guide you.


You forgot the /s, but it's pretty obvious;)


What is /s?


Sarcasm


Thanks.


Strange, I got down-voted for thanking :|


Thanks and congrats for your work Quincy. freeCodeCamp is something very very special. I consider it of similar importance of Khan Academy and Stack Overflow.

Unfortunately it does not receive proportional attention from more technical forums like HN. Mostly because it is basically designed for non-developers. That's why I particularly like the marketing strategy of students giving stars to freeCodeCamp Github repository. It brings awareness to developers of all kinds and ways of life about what you are doing.

I believe freeCodeCamp will grow to be an essential tool for improving society and individual people's life by democratizing knowledge.

I hope to learn enough to be able to give back to the platform. It's pretty overwhelming to be in the situation I am right now, but once I am more stabilished I will sure contribute somehow.


My experience was way closer to the 192 than the 4, but either way your program was pretty vital for getting my first 2 jobs. Thanks for what you do


Congratulations! This is awesome

> but I know the rough part is only starting

Yes and no. Getting the first job is a huge hurdle, you actually have overcome probably the most difficult challenge of the early years of your dev career, so well done.

Of course, the challenges keep coming, and quickly, but from here on it will look much more like a (possibly rather steep ;-) upward curve wrt time rather than a huge cliff (hobby projects/qualifications -> first job).

So long as you're expecting and prepared for that, which you clearly are, you're now in much more of a position to control your own success, which in relative terms is actually a lot easier, less stressful, and even fun!


Clickable: http://rodrigo-pontes.glitch.me/

Congrats on your achievement. :)


Thanks! (there is nothing fancy in my portfolio, btw, just wanted to share it so people in similar situation can have an idea of how an average output after 6 months of coding could look like)


Champion!

May I ask, what was your background prior to moving into coding? A different technical field or trade?


I graduated in Economics. The first ~7 years of my career was at non-profit organizations (as project manager and fundraiser). Then I went to the startup world, one year as a startup founder, two years working with growth marketing at another startup.

But I always had a good mind for logic and analytical stuff, I think it helps a lot.


I don't mean to be intrusive, but how much can one earn after this experience?


All depend of your location of course. I live in São Paulo, Brazil. I earn 4500 Reais per month (~ 1300 usd per month). This is actually around 30% higher than what I was expecting as an average salary for a junior web developer. Luckily I landed the job with the highest pay.

My expectation is to double that within two years. I believe my former work experience can accelerate my path to be a senior developer. And then keep going on a more linear growth.


Awesome, thank you. I wish you good luck!


I think you have accomplished the hardest part. Action is now your reward. :)


It looks like you've learned a lot, but a lot of people are going to criticize you based off your design skills. Frankly, it's ugly so you're automatically not going to be doing any product work. If you could clean up your demos to look more acceptable to the modern day reviewer, I think you would have better presented yourself.


I didn't downvote you, but I'll offer:

Frankly, it's ugly so you're automatically not going to be doing any product work

"Frankly, at the current level, without some improvement and time, you probably won't be doing much product work."

If you could clean up your demos to look more acceptable to the modern day reviewer, I think you would have better presented yourself.

"Clean up those demos to appeal to the modern reviewer, and you'll be better able to present yourself."

(Empathy also presents you better)


I considered using a common framework, but I wanted to create some design from scratch. I know it is not good for some people, but I think it added to my skills doing that way. Someday I will try to improve it, but still using my own ideias, to see if it gets better. But with the job now and all I have to learn, it is not a priority.

If I were to create a product, I wouldn't try to be creative. I would just use some modern CSS framework.


I agree it is better to have a good grasp of css before using a CSS framework. If you haven't already, checkout this fantastic new CSS/layout tutorial/book:

https://www.learnenough.com/css-and-layout-tutorial/


It's better than my first website.


I didn't downvote you, either.

In this world, there're 10 types of people: there're good people who're half bad and there're bad people who're half good :)


This is constructive and honest opinion. Why downvote?


Because it's unnecessarily tactless and bordering on hurtful. Learning how to give honest feedback without being so cutting is a skill the commentor should learn.


How do you define degree of tactlessness? It was so nice of him to call that website 'ugly'. It is totally unacceptable to downvote someone for telling the truth(no matter how ugly it is).


Exactly. There's this poisonous atmosphere in HN that dislikes criticizing honestly. In fact, throw in some compliments and you'll get a zillion upvotes. But complain about something, and fear getting banned...


that's just how people operate. If that indicates HN is poisonous then all discussion places are poisonous, which really means nothing.


Somewhat related, perhaps the most spectacular story of a late coder I've ever heard is that of https://en.m.wikipedia.org/wiki/George_Pruteanu (somewhat controversial Romanian literary critic and politician).

Basically, despite having a major in Romanian literature and spending a lifetime as a literary critic, with almost 0 contact with computers, he decided in his late 40s and early 50s to understand the things behind the internet.

So he picked up on his own: PC usage, internet browsing, PHP and MySQL coding, enough to make his own website and a few apps. That, starting from a point where he could barely use a mouse.

When asked during a TV show how he did it, he replied:

Like I did things for my literary criticism: I read an 1 meter [high stack] of books about the subject.

Every time I need motivation I think about that quote :)


>I read an 1 meter [high stack] of books about the subject.

Sounds like a good hook for website. Instead of learn X in 21 days: http://www.1meterofbooks/programming


That unit of measurement should be dubbed the Pruteanu

As in:

"How many Pruteanus until I'll be proficient in ML if I have zero understanding of the subject"


So shall it be!

1 Pruteanus (1 Prt) is measured as the amount of learning from a 1m high stack of any books given.

obv /s


You could use some standard figures for page and book size (in Kb) and measure Pruteanus in megabytes of text. And you joke, but there's nothing in particular that is required of a unit of measure other than a lot of people thinking it's a good idea.


Should also consider an information density:

This book may look small, but has about .125 Prt in its pages!


Golden!


Given you can get the dimensions of particular books off their Amazon description; looks like it could certainly be done!


Domain just sold. Interesting.


on the topic of book learning, is there some generally considered principal choice when it comes to learning Haskell? There seem to be some competing ones with widely varying opinion.


There are indeed a lot of competing ones. Highly recommended:

• CIS 194 @ UPenn, https://www.seas.upenn.edu/~cis194/fall16/

• Haskell Programming from first principles, http://haskellbook.com/

• Real World Haskell, http://book.realworldhaskell.org/


RWH is great up to Chapter 4 at which point the wheels come off. LYAH is much better.


Learning Haskell by reading the most influential papers is also a good approach.

https://hackwithlambda.github.io/reading-group/


Not to be rude, but that sounds like a horrible introduction to a language for a beginner.

If you're intermediate and want to gain more insights sure. But if you don't even know the syntax it seems like an extremely inefficient way of learning any language.


The first papers in the list explain the "why" of functional programming, and later on more concrete Haskell topics are covered. Papers shouldn't be the only resource but you can supplement them with tutorials and skimming Real World Haskell. This approach of reading papers is intended to be holistic, of course you won't be churning out Haskell code within a couple days, but when learning Haskell or FP, syntax shouldn't be one of the primary focuses imo. Unless you're learning lisp.


Depends on your background of course, but Learn You a Haskell for Great Good has been pretty influential as a first look at Haskell. Read it with a REPL open.

http://learnyouahaskell.com/


When computers were invented, a lot of the people involved were already adults - plenty in their 40s and above. Before home computers, you didn't get to use a computer until your 20s.

Therefore, the first few waves of programmers included a lot of "already olds."

This is always overlooked as evidence that older people can learn to program.


Of course, but they had a strong theoretical background that made it a natural transition. And besides that, nobody would argue that you don't need a fancy medical degree to do medicine because the barber surgeons didn't have one (different circumstances, but I think OK for illustrating the problem with the argument).


The concern I usually hear is not around the learning to program aspect. Instead, it's that fact that almost every other entry-level programmer is a college grad, and that hiring processes will be biased against older candidates.


And the computer science field branched out of mathematics. The age thing, I think, really is just shortsightedness.


Actually cheapness. Young employees don't know their value or how to negotiate.


This is a terrific observation - really should be the top voted comment.


I'm sorry, but I can't help but be incredibly cynical and jaded about this, and from reading the comments, nobody seems to have the same sentiment. If this was titled "How I learned to play the piano in my 30s", I don't think anybody would bat an eye: learning an instrument is not like joining some secret cult, and anybody can develop basic music literacy over a year or two. I also do not doubt this man's proficiency, but 30 is not old outside of tech circles. This youth fetishization in tandem with the "everybody's dog should learn to code" meme I think is very short-sighted.

Tech is wildly lucrative, is in current demand, and is not physical labor. That reduces the barrier to entry to anybody who has a laptop and an Internet connection. Honestly how many people would be so eager to learn to code if you dropped down the average tech salary to 45,000 (matching other professions)? I think far less: people seem to learn to want to code to ride the high-pay wave, not for the actual love of code.

Again, let's compare to music. Anybody can go to a guitar store and buy a 200$ keyboard. But if I took a 14-week class and afterwards had the aught to call myself a "Music Ninja Rockstar" or some other such nonsense, and start applying to orchestras and bands, I would be called crazy.

Software has eaten the world, and it's here to stay. Increasing the general software literacy is no more different than saying we should teach everybody how to read (and a good thing). However, throwing each person in a bootcamp telling them "coding is wonderful! you can master it in 5 seconds and make 200k a year!" is no different than holding a similar bootcamp for any other vocation and then wondering why the average plumber can't actually fix your house, but can only use a plunger. I sincerely hope this trend stops. This mindset is broken, and the paradigm is highly unsustainable. Where will we be in 20 years?


> However, throwing each person in a bootcamp telling them "coding is wonderful! you can master it in 5 seconds

I am not sure if you read the article? The point is that age isn't a barrier but that becoming a software engineer is a lot harder than just going to a bootcamp and expecting a job to appear. This is about spending a year trying to find a job.

I have zero problem being compared to a plumber with a plunger! If something breaks in the middle of the night, I get paged, grab my mop and my tools, and fix it.

Why does it matter if the average plumber "can't fix your house"?

The pay is good because of supply and demand but I really do not know programmers who decided to get into it for money.


I'd go so far as to say most programmers working today are in it for the money. Despite the constant pressure to maintain the illusion otherwise, no one is passionate about making shitty CRUD apps enabling today's questionable business fad, and that takes up a large chunk of available work.


> The point is that age isn't a barrier but that becoming a software engineer is a lot harder than just going to a bootcamp and expecting a job to appear.

I know, but that's not generally what you'd see on a "learn X in Y days" sort of site. I'm more talking about the zeitgeist.

> Why does it matter if the average plumber "can't fix your house"?

"Fix your house" is more idiomatic for the entirety of plumber work. I suspect that you are more than a one-trick pony of development, but that takes years to master. A plumber that needs to fix a house needs to use and learn a myriad of tools that take years to master.


In mainland Europe, the salaries for programmers are much more in line with the rest of the workforce, and lower than that of engineers, on average. There's much less of a craze to learn programming here.


Part of the reason for the job craze in the us for programmers it that there are increasingly fewer opportunities for unskilled or low skilled labor in the us, as compared to europe. we rarely have internship programs at high schools, and companies are often desperate to find skilled machinists. But also the fact that we pay so much to good devs - that pay is only because of the tremendous worker shortages.


I mean, really, so what? Yes, anybody coming out of a boot camp program is going to be pretty junior to start with and will only be able to do simple things without guidance. I'm not sure that makes them so different from new grads or interns (sure, let's make a few exceptions for genuinely skilled kids).


I've never liked that programmers in general seem to imply that there is only room for the very best that develop for love and not money. The world needs a lot of mediocre programmers banging out CRUD sites for at least the near future. And some of those mediocre developers will eventually turn into good/great devs, and the ones that hate it or give up will be pushed out.

No one tells the person going back to school for accounting that they really have to love accounting or they should find a new line of work.


I completely get that, but that's not what I'm saying - if we're just in the coding for money (which there is nothing wrong with), let's just be honest about it, like we would be about the accounting gig: "Yeah, I don't love it, but they pay's great".


I like programming, but if I could do literally anything and be just as financially secure maybe I wouldn't choose it.


Yeah, everyone should learn to code, but there is an impact of age. Not many 40 year old guitar players in current rock bands (not many current rock bands on the radio :-0). That first job is a true barrier to entry for new coders who don't come from an academic background. It's got to be harder for that older person to get a first job.


I've started learning to code when I was 26 and people told me I was too old and should stay with my shitty job.

Fast forward ten years and I'm a senior software engineer which gives trainings on Spring Boot and Microservices and helps companies implementing Continuous Delivery and Microservice architectures.

You may think I'm gifted but I'm actually not. I'm a very slow learner and bad at Math. I mostly program from 9 - 5 and only work on side projects when I'm feeling to (which sometimes means not doing any commits for months).

But I like what I'm doing and work hard to improve.


People told you at 26, that you're too old, and should be complacent? I guess maybe if you're trying to be a professional athlete, and this is your first time picking up a ball. But learning to code? That's the dumbest thing I've ever read. Most people don't learn to code until college to begin with, so what, you're a few years behind? That's just silly.


26 is still young! I would understand if people would tell this somebody who is 56 (9 years from retirement), there might not be enough upside to changing career at such late point. But even then I'd say it might be worth it.

But 26 is still a blank canvas you can learn anything easily. I think there might be a bias as many hackers started learning programming when they were 15 years or younger so they assume it has to be like that for everybody.


Yeah, that's bull shit, 26 is not too old. I'm 50+, just quit my last job where I was a principal software engineer, did 4 interviews, got 4 offers, took the one that made me director of a project (I have previous management experience too). If you keep coding and don't become just a manager, the world is open to you in software.

I have many years of experience and built up expertise, but I was in grad school until I was almost 30!


This is generally a decent article about the balancing non-technical skills, and exerting effort in learning.

I found it noteworthy that the "hook" in the title is that the person started in (gasp) their 30s. Why should that be noteworthy? Why wouldn't someone start coding in their 30s, 40s or 50s?

Now it is true that starting a new profession late in life may not always make sense because, presumably, you have to little time left you might as well "ride it out" contributing what you know.

So, yes, it is unusual for a doctor to start learning mathematics in their 40s (though not unheard of: https://en.wikipedia.org/wiki/Endre_Szemer%C3%A9di), but it isn't less strange to make such a change in computer science than any other field.


I started learning to code in my 30s and I found articles like this very helpful. You're right - why should age matter? But it does, at least in one's own mind. When you've spent your 20s working in a different field, it's very easy to get stuck. It just gets harder and harder to mentally motivate yourself to study something new and pursue a different career. Hearing from other people who have gone through the same struggle tells you that, hey, this is possible! Especially in an industry full of people who have been coding since they were children.


> Why should that be noteworthy?

Because there's perceived ageism in this industry, so saying you're just getting started in your 30's is interesting.


Isn't the same ageism -- true or perceived -- in all industries?

Would you be feel comfortable starting med-school in your 30s? A PhD? Training to be a plumber or an architect?

If anything, because programming takes a shorter time to become productive (say 2 years), I would think it would attract older job switchers.

(edit: Before people give me counter-examples, note:I know these things do happen)


> Isn't the same ageism -- true or perceived -- in all industries?

Hmmmm... in a handful of industries I might say yes, but in many others I would say no.

I see an abundance of discrimination against younger in many industries. Either they are looked at as lacking knowledge, experience, or both. Often times this perception is justified, but often it is not. Of course, there is no legal recourse since age discrimination in the US is mostly (always?) for people 40 and older.

That said, the ageism in technology in the Bay Area and a few other areas is peculiar and does not seem to be particularly widespread outside of these regions (at least in the US). This ageism seems to follow a few patterns:

1. People in the capital class working young people hard for low pay... because they can. Most older folks won't put up with it for justifiable reasons. These are often terrible places to work and are often terrible businesses as well.

2. Really smart and creative young people who want to work with similarly-minded people without having to manage a potential or real generation gap. This is probably closer to being justifiable when at a very small scale, but it's still potentially illegal, especially as scale increases. This is the sort of headline discrimination that is seen in the Bay Area -- a 20-something superstar typically doesn't have the "soft skills" necessary to manage someone a decade or two older. Few people at that age do, but this is especially true for folks who spent their younger years developing their non-managerial specialist knowledge.

3. "Culture fit". Some (many?) younger folks in the Bay Area seem to want to extend their college partying years. This means that older and potentially more conservative or parent-like figures are not particularly welcome. I think that this is not uncommon at any favored destination of recent high-achieving college graduates (as well as wannabe high achievers).

If someone in their 30s or 40s wants a job in tech, one easy way is just to get away from the areas that are flooded with high-achieving recent college grads. The areas that are flooded with these types have very real ageism problems. The areas that have few of these folks (most areas) largely don't have ageism problems -- if anything, younger applicants are more likely to be perceived negatively. Admittedly, the latter places are often less cool (i.e., not Bay Area, not NYC, not Austin, etc.), but these places have jobs.


I am a mature worker looking in the Washington dc area. There seems to be a lot of competition. Do you think I would have better luck in Atlanta?


I honestly don't know what the job market is in Atlanta.

That said, the US government and contractors thereof desperately need programmers and programmers who can do other stuff (e.g., manage a contract, project management, etc.). I would try to meet some people who do this type of work and have a coffee with them. Many of these folks live in the D.C. area.

It's not sexy at all, and you won't get rich via a startup, but there are very solid middle class jobs in that category.


thank you for the reply and advise


Lots of contractors are hiring in DC. Check out places like Excella consulting. Good luck.


Not really. The problem in general is that there are very few active "junior" level positions about, and a lot of people wanting to break in - see /r/cscareerquestions. For later learners especially self taught learners the problem really comes from finding the FIRST job, not the second when they have professional experience.

Coming out of college though is a different experience. If you're 33 and just finished a BS in CS you could probably make a run at most jobs. But self taught at 33 requires a lot more to get in the door than self taught at 25.


There may not be a lot of jobs out there for junior people but there are very few out there for people with 20+ years of experience, either. Everyone seems to be looking for that “4-6 year” sweet spot where they think they are getting the best of both worlds: someone senior enough to have made and learned from a few mistakes but not too senior that they have to offer more than peanuts and worthless equity as pay.


I think it depends on the technology stack actually, I've noticed it's been trending up in mine (.net) with many now wanting 8-9 years experience. It seems like the sweet spot is generally age of technology divided by 2.


Other industries (most anyway) don't whinge about a chronic skills shortage and rely on imported (and exported) labor as much as ours does.


Yeah, I think the relevant part is "getting into software/tech in 30s", not learning to code per se which should be non-newsworthy at least through one's 50s.

Then again, I changed careers into software in my 30s (had just turned 30 when I left aerospace), though I had coded in some capacity my entire life. Newsworthy?


Maybe! You never know who you're going to inspire. :-)


s/50/90/


I found the article very interesting, and I thought the hook was valid - coding is one of these disciplines where the general consensus is that you need to start very young to be good, similar to Olympic athletes. I wrote my first trivial but working program aged 5 so I believe this to be true to some extent; reading an experience that contradicts this was valuable to me.

I also liked the article for a different reason; I don't aspire to be an Olympic athlete but I do want to become good at certain skillsets that I've only started exploring after my 30s, so I'm definitely hoping the author's experience generalises, and rooting for him :)


I wonder if we'll start seeing want ads for Olympian level coders (instead of mere rock stars).


I agree about the age reference, it's irrelevant. If grandma wants to learn javascript then so be it, challenge the brain and code away. I don't find his story that uplifting or even worthy of a challenge that any other 30 year couldn't do.


I once said that "I realize nothing I do in engineering will ever end up on the front page of Hacker News." Feels like a once-in-a-lifetime moment. Thank you


Thanks for sharing your story! I took a similar path: 20s in a career I didn't like, coding bootcamp, working like crazy to get that first software engineering job. Now I couldn't be happier!


Been there at the top once upon a time.

"We create our own demons."


I couldn't agree more. I had a few paragraphs on impostor syndrome that I edited down to "doubt" but I hope it was implied, you must ignore impostor syndrome. There are always going to be people doing Mount Olympus code and that is great! These are the people we can learn from. I get to build things people use and I love it.


I've been programming for 13 years. I started when I was 14 years old and studied software engineering at university. These days, when I take on well-paid contract work, sometimes I find myself working alongside people who only started learning to code at around 25 and never went to university.

It's upsetting for me to think of all the fun I missed out on in my early life because I was learning programming and pushing myself through university and it turns out that it doesn't even get me a higher pay check in the end.

These days, nobody cares that I'm proficient in all of ActionScript 2 , ActionScript 3, C/C++, C#, Java, Python, AVR studio (microcontroller programming), MySQL, Postgres, MongoDB, RethinkDB, PHP, Zend, Kohana, CakePHP, HTML, CSS, Docker, Kubernetes, AWS, JavaScript, Node.js, Backbone, CanJS, Angular 1, Angular 2, Polymer, React, Artificial Neural Networks, decision trees, evolutionary computation, times/space complexity, ADTs, 3D shaders programming with OpenGL, 3D transformations with matrices, image processing... I can't even list them all. I could wipe out 95% of these skills from my memory and get paid the same.

It only gives me extra flexibility... Which it turns out I don't need because I only really need two of these languages (C/C++ and JavaScript) and a couple of databases.


So you did learn programming, because you wanted a great paycheck 13 years later? Lol, that's just stupid. I advised everyone from my circle to stay away from programming unless they fell in love with it. It's pointless to be a programmer if you don't have it in your heart.

However, if you did enjoy, then there is nothing to be upset about, I mean you are doing what you love right? If its all about your paycheck you could try finding another employer, but not everything in this life should go around money, there are more important things, find people who could appreciate you and your values, be happy what you do and maybe the money will come later.


Really? If I didn't have to work I wouldn't write another line of code in my life. But its a great career that hits all of the notes I wanted for a job. What's wrong with that?


> I wouldn't write another line of code in my life.

I personally see this as a problem, having to do something I don't like.. for years... probably for life?


>So you did learn programming, because you wanted a great paycheck 13 years later?

I don't know, I did something similar and didn't care about how much I would get paid. I learned because I loved it.

But almost no one warned me about what I was missing out on because they kept saying that I was spending my time well based on the whole money thing. (in fact, there where many people who said I was spending my time better than most of my peers because of this.)


You are 27 right now right? Your life has just started, what did you actually miss that you cannot do now?


I take it you're single. Factor in the requirements of mortgage and supporting a family then consider whether you have the option of only doing what you love. I'd love to programme exclusively in Clojure but the job market dictates otherwise. Python's the most likely and at least it's not PHP or Java but that's as good as it'll get for steady money.


Nah, I have 3yrs old son, but this does not stop me from trying to make living with something I love to do. I actually think that if you hate your job, but make good money, this will be worst for your family/kids, because you are gonna start bringing all this negative energy at home.


I was passionate for the first 11 years. The last 2 I did it for the money.

After solving so many difficult problems in my life, I feel that the only difficult problem left for me to solve is making lots of money.


You forget that those of us who learned to program later in life were doing other things the company finds valuable. I am 32 and have been a data scientist for the past 3 years - completing my PhD in mathematics. Prior to that I was an air traffic controller and prior to that I spent all my time playing sports - not once did I sit down and teach myself to code.

The skills I learned that don't relate to coding are how to effectively work on a team, how to handle extremely stressful situations (no situation will compare to pushing tin in Iraq), how to lead and have people wanting to follow, how to communicate verbally and in writing, how to just do something without seeking approval etc... I could go on.

Just because you spent the past 13 years learning numerous technologies and missed out on fun doesn't mean those of us who learn to code later in life aren't as valuable. We have skills and talents you might not see but are deemed equally as valuable to our employer.


> I could wipe out 95% of these skills from my memory and get paid the same.

A typical rockstar could probably wipe 95% of the songs from their mind and still get paid the same, but they never would have made it to that point if they had only ever played the ten songs that are actually on their set list.

There are a lot of general skills that you pick up along the way while you are learning the more specific things that end up mattering more long-term.


> I could wipe out 95% of these skills from my memory and get paid the same.

You are correct.

If you're being paid for C++ programming, does it matter that you know AWS in and out? You're absolutely a better programmer all around, a more well-rounded technical expert, etc, but the C++ you produce is not inherently better because you messed around with CakePHP (lol) back in the day.


A lot has changed in the past 5 years or so. Anecdotally, 5 years ago I'd bet that 90% of programmers either had a CS background or something very similar (ECE or Comp. Eng.).

Today, I think that number is down to 50% or maybe even less. So many of my friends who went to excellent schools but had degrees in Biology, Biotech, Physics, and even some social degrees (including a pianist) now are full-time programmers.

I agree with your sentiment though; if you don't need a CS degree to get a CS job, then maybe try something else during college. Take programming courses at your local coding bootcamp.


To add some anecdotal support: I land in a similar, but different camp.

Self taught programmer (started at a young age out of interest), working in the field in sort of a generalist dev position at a large media company. I'm out of practise with my math, but trying to kickstart myself to return to university for studies in Physics. Maybe a bit of a reversal?

Programming jobs are a great practical employment solution, but personally I feel compelled by my drive to see behind the curtain too much to settle. As well, to seek out further innovation on the application side I have this sense that there needs to be far more crossover than there is presently.

All this and I started out studying English at U of T, and didn't get to finish (financial reasons). And here we are.


Just two points:

> Programming jobs are a great practical employment solution

I entirely agree, but I wouldn't discount a "great practical employment solution." Compared to the alternatives, programming jobs often pay better, have a much better lifestyle, and are far more gratifying. Very few get exceedingly wealthy, but it's a very respectful position where you get to use your intellect.

> personally I feel compelled ... to seek out further innovation on the application side I have this sense that there needs to be far more crossover than there is presently.

Ideally, everyone would be an expert programmer AND an expert in something else. Having a strong command of a programming language is much like having a strong command of the English language. It's a valuable skill, but far more valuable if you have something interesting to say.


>ActionScript 2 , ActionScript 3, C/C++, C#, Java, Python, AVR studio....I could wipe out 95% of these skills from my memory and get paid the same.

Yes you're right about this.Programming is quite similar to math in that aspect. Great debugging skills and understanding can replace the requirement for all of this.

But you seem to be missing the point here. There is a difference between learning a language and the frameworks compared to learning _why_ a language and _why_ a framework. This is what ~60% of today's "coders/programmers" miss and are unable to understand.

Learning the why helps you pick up things much easily. The effort you would have to put in to learn any new languages would be considerably much lesser compared to others.

A commonly quoted line in the industry is , "you need more breadth than depth".

And you wipe out a lot of skills on a regular basis. This is not a conscious effort that you make. It just happens to everyone.

I'm not trying to say that the late blooming programmers do not understand the "why" bit, but rather that a lot of programmers do not. I am one of those self taught programmers who loves exploring the why. And it makes my life much easier than those who do not. So revel in knowing that you are capable of picking up new skills much easily compared to others. That IMHO is a much more important characteristic than knowing a million languages/systems/frameworks.


Nice to see the hacker ethos is still alive and well.


If you want money, don't be a jobbing programmer. Either make something with all these extraordinary skills you have and own it. Or go into Sales or Management, where there is real career progression with rewarding financial incentives.


Yes but you can use your advantages. It's only about finding the right opportunity.


When I was a kid, my mom was teaching high school, and thought that she might get laid off due to declining school enrollment in the rust belt. She took a year of programming courses at a community college. The next year, they asked her to teach the course, which she did.

Most of her students were 30+, many were working in the auto industry, including assembly line workers. At the time, there were a lot of bright people working the lines because it had always been possible to skip college and land a decent middle class job at the car plants. But that was coming to an end.

Her students were taking one year of CS and getting hired into reasonably decent programming jobs.

In fact, I was also interested in programming, and learned it in school. When I went to college, my mom discouraged me from majoring in CS because she literally thought programming was too easy to justify 4 years of classroom training, and she thought that the job market for programmers would quickly saturate.

Let's just say we guessed wrong. ;-)

But at the time, college level CS was still maturing as a discipline. Many of the 4 year colleges didn't have full blown CS major programs. I'm betting it's harder now, but I honestly don't know if programming per se has fundamentally gotten any harder.

Edit: Noting some of the comments, I certainly don't want to disparage the CS degree. After all, I majored in math and physics -- hardly a turn towards a practical training. I think these are fields where you have to be interested enough in the subject matter, to study it as an end unto itself. Being able to do actual practical work in a so called real world setting is always its own beast, no matter what you study.


> Let's just say we guessed wrong. ;-)

Not that wrong, imho.

> my mom discouraged me from majoring in CS because she literally thought programming was too easy to justify 4 years of classroom training, and she thought that the job market for programmers would quickly saturate.

This part is real wisdom. The best developers I know (and I myself, which I consider an above average programmer) learned how to program by themselves (before, during or after high school time). And it is not uncommon to find people with CS degree unemployed or with difficult to reallocate with the current state of tech, at least here in Brazil.


That's the distinction of coding vs CS.

Building CRUD apps using existing frameworks is coding.

Building said frameworks and the rest of the software that powers those CRUD apps takes more.

I don't mean to rag on simple projects or coding either. It's just as noble as any other profession. But to say that a random Rails or Node developer could write something like Postgres is laughable.

It's not the degree that makes that possible either. There's plenty of idiots who've graduated. It's the difference between studying how to do something and studying abstract concepts. People who have done CS degrees are more likely to have been exposed to the latter.


I don't mean to belittle you either, but this is hogwash. Of course a Rails or Node developer wouldn't be able to write Postgres without ramp-up time...

Maybe what you're saying is that the ramp-up time would be LONGER for someone starting from Rails or Node only knowledge to being an infrastructure developer?

Any highly sophisticated application ( Postgres, LLVM, etc ) requires some advanced levels of domain knowledge but they aren't impenetrable fortresses of skill that no mere mortals can access.

I think, somewhere along the way, a lot of developers started believing this fantasy that they were the keepers of secret knowledge that only a few select individuals knew... GOOG and MSFT perpetuated that with esoteric interviewing processes and cult-of-personality style branding. The truth is... the fundamentals of CS aren't terribly difficult nor are they even terribly exciting. You can absolutely learn them on your own or even as you go.


> Any highly sophisticated application ( Postgres, LLVM, etc ) requires some advanced levels of domain knowledge but they aren't impenetrable fortresses of skill that no mere mortals can access.

Indeed. I think too many problems in our industry are seen as unapproachable. There's a lot of people working on postgres, me included, who did not have any sort of deep background in databases before. You start working on smaller things (I started making int -> text conversion faster), review other people's patches, start to develop new features, ... Gradually that gives you a more and more knowledge in database architecture. And you read a few good papers here and there.

Obviously that approach doesn't really lend itself to writing something like postgres from scratch - but realistically that's not something you're going to do on your own anyway. And if you do start a new project you don't set out to do something absolutely complete, but build it iteratively. With more domain knowledge, you're more likely to get the architecture halfway right initially, but in either case you're going to have to redesign and redesign and redesign.


And who do you think will build a better web framework (like Rails), someone with 10 years of experience and hundreds of systems deployed with frameworks of the time at age of 22 or a fresh graduate? I'd bet on the former.


I find CS knowledge useful only when you tackle hard problems. Only then, CS and mathematics knowledge will come to play.

You don't need a CS degree to make a website.


I think you mean specific problems. Hard math problems are extreme outliers in fhe realm of computer science and there are plenty of suitably qualified people in the maths side. That said, less hard problems, more suitable programmers with undergraduate maths, are quite common and a growing area. This may preclude those that are self taught and lacking more advanced, but not highly advanced math.


I don't even think it's that necessary to solve hard problems, at least in most fields.

You can do a lot with general coding knowledge, however, I've found the CS fundamentals to be most useful for optimization.


it depends on what do we define as "hard problems"


Some of the best developers I have worked with had CS degrees and some of them didn't. The ones that didn't were programming from when they were kids (like you say). Based on my experience of working with developers from both backgrounds, I personally wouldn't discriminate based on whether someone had a degree or not when interviewing.


What i always tell people if you find yourself naturally drawn to it then you will eventually find some level of success. If your in for just the money then you will not stick with it and it probably won't happen.

Same is true for just about most things in life.

This guy found he was naturally drawn to it. End of story.


I'm going to disagree from the opposite end of the spectrum as the two replies already disagreeing.

I wanted to program computers from when I was a kid and my dad showed me how to draw coloured circles on the screen. And now, I have a job in tech, part support, part coding.

But the thing is, I'm not very good at the coding part. I'm also quite lazy and hate practising things I'm not very good at, so I don't put in the work to get better.

Meanwhile I've seen coworkers come and go and maybe been a bit scornful of them because they seem to be only in it for the money, or they don't know things "everyone should know", maybe they don't even seem to want to ("pfft, what kind of boring loser would even care about that stuff"). But, they've been much better coders than me: they've picked stuff up faster, they've put in more work, they've gone on to new, better-paid, more interesting jobs. And well done them.

(It's a good, encouraging story for beginners who are drawn to it though, I agree with that part.)


In a sense, you just described the beginning of a passion.


people say this a lot but it's pretty hollow. if you're smart enough you can do it even if you don't like it. anecdotally I'm a fairly good dev (full stack, know several languages, several projects under my belt) and I hate it. the day I move from technical to management will be the greatest day of my life.


Careful what you wish for. Management is often the same shit, different sandwich. I agree, however that you can be good at something you don’t necessarily have a burning passion for. That’s why they call it “compensation”–it’s there to compensate you for the time you’d rather be doing something else.


I honestly have never worked with anyone in software like that. I think you are a lot more rare than you know at least when it comes to software dev. But I do know other industries are filled with smart people that hate it and somehow stuck with it only for the money. For example attorneys...


I don't think you'd know if you'd worked with someone who is just in it for the money. If they're coding just for the money then it stands to reason that they'd also be willing to pretend to like coding just for the money as well.


coincidentally enough i considered law school before i considered my ms in cs :)


A manager tries to create reliable processes using flaky components with zero test coverage and lying metrics, I don't envy their job.

Btw, it irks me that you don't capitalize the first letter of your sentences but still properly capitalize "I".


>Btw, it irks me that you don't capitalize the first letter of your sentences but still properly capitalize "I".

blame my phone.


My experience: been in both roles. Mgmt is not bad, but after a few years in it, I consider my current career as freelance contractor dev to be way less stressful.


Totally untrue.

I'm just in it for the money. I've achieved success, I'm really good at my job and I'm still going strong almost 20 years later. Wouldn't do it if it didn't pay the bills.


I also learned to code after 30. At some point Excel and Origin weren't dealing well with ever increasing data sizes in my field (biology). I did an intro course on Python (2) of 3 days (basic Python and some Numpy). Back on the job I immediatly switched to Python 3, learned about Jupyter and was lucky enough to have a job where I could take time to learn (although it doesn't take much time to get back up to Excel/Origin level data analysis skills with Pandas/Seaborn/Jupyter!).

That combination is still gold for me although bioinformatics is forcing me into VSCode/Bash/Git territory more and more. I can recommend anyone wanting to do data analysis to start with the Jupyter/Python/Pandas/Seaborn combo, the notebook just makes it very easy to write small code snippets at a time, test them and move on. Writing markdown instructions and introductions/conclusions in the document itself help you to make highly readable reports that make it easy to reproduce what you did years ago.


Would you know, or can recommend, any good datasets (or practice exercises) using "Jupyter/Python/NumPy/Pandas/Seaborn" for someone with a similar Excel background (and basic understanding of Jupyter/Python/Pandas)?


Seaborn has a standard data set (now that I searched it, it is part of scikit I think) [0], however, I think what made learning fast is that I used the same type of data as I did before and had a clear goal. Excel sheets are easily loaded into pandas:

    import pandas as pd
    file = pd.read_xlsx('some_excel_file.xlsx')
    file # Just typing this will display the file as a table in jupyter, after ctrl-enter to execute the code block
To plot:

    import seaborn as sns
    %matplotlib inline # This makes the plot appear in the notebook instead of in a separate window
    sns.violinplot(file)
Boom, that is it (assuming the Excel file is a number of columns with labels as the top row).

[0] http://scikit-learn.org/stable/auto_examples/datasets/plot_i...



Such resources are nice, certainly, they give a feel for what can be done. But in my experience you learn when you get your data loaded and start putting together code based on stackoverflow (or other) answers. Not by "dry-reading" someone else's work. There is no moment where you say: "I'll learn X now", there is a moment when X is the best solution to your problem en you start using it... and become an expert before you realize it. Imho.

Maybe it's different for you of course. And, I may have been in a nice position where I had a job that started to required X at some point. I realize that. But then maybe you can find a problem of your own (maybe you want to plot the data from your fitness tracker?) I once spend a lot of time plotting the details of my mortgage (cumulative paid, rent, decreasing dept as function of monthly payments), such data is just the result of some input and you make a table out of it yourself (in Excel if you want, in Pandas if you feel comfortable enough).


> Immersion means 100% focus. If possible, no friends, no drinking, no TV, just reading and writing code. If you take five minutes off to read the news, be aware you are breaking the mental state of immersion. Stay focused, be patient, your mind will adapt. Eliminate all distractions, of which you may find doubt to be the loudest. Immersion is the difference between success and failure.

Certainly, I think Deep Work require full concentration. So when in the mode of learning, I find keeping focus instead of going to a website to read news, or checking e-mail/messages to be incredibly important in maximizing the incremental process of grasping concepts.

That being said, whereas the author seems to prefer taking a few months to go deep into it, I prefer to immerse myself over a long period of time by learning and practicing a few hours per day (just like an instrument), letting my mind stew in the knowledge during diffuse thinking periods, and then come back to it the next day.


I agree that for rapid learning, focus and repetition are essential. I don't think you have to quit your job in order to change careers into coding, but for me it took a very full year of effort.


Hi, Brad. I'm now embarking on a non-programming learning crusade. I agree with your comments on immersion, but I find it quite difficult to become immersed. I am often distracted or don't have the "energy" to do the serious work I need to to learn.

Do you have any tips I can steal from you?

Great article BTW!


I'm 36 and learning how to be a real programmer. Was a Linux Admin, and an architect for my career. Did presales, and became an expert at a lot of different roles within the field.

Never was truly a developer, and decided I wanted to accept a job as one. I've programmed in the past, how hard can it be?

Wow, it's been enlightening. Really hard. I thought it would be straight forward since I've used scripted quite a bit in perl in my past, but being a developer is much more than writing a few scripts to automate a task.

I'm a few months in now, and I am still slower than all my colleagues by quite a bit, and the main language I'm working in has changed already, moved from Python to Go.

Even right now, I'm stuck on an issue around pointers and data structures that feels like it should be easy, and I'm just not getting it.

All you can do is keep confidence up, and keep at it. Immersing in it, and knowing that irrational levels of effort will lead to results.

I thought it would be easier though :)


Soon you will love pointers and structs and everything Go. Keep going (pun intended). Your colleagues are worried about their own work and your manager has made a long-term investment in you, not about the first few months. :)

I couldn't agree more that it is tough going when you realize a challenge is more than you expected. That plus impostor syndrome is what caused me to quit on my first try.

We are moving a lot of things from Python to Go at the moment and it has been great.


Appreciate the positive feedback. I certainly feel the management are making a long term investment, but feel my actual team is... concerned about the lack of deliverables.

Which I think is fair from their perspective, I think they expected a developer by trade to have assumed the role, and in actuality it's someone who has done a tremendous number of jobs around development. I'd be a bit concerned as well.

The great thing is, I'm learning a ton of cool technologies, and already see the major progress on a lot of fronts.


Actually knowing where you are at puts you way ahead of the curve. Many developers don't even know they are not that good. If you love it and seem to have excelled already in a similar area you just need time. Even just knowing that good development is not just writing a quick perl script or copying and pasting the tutorial code or stack overflow answer is a good sign and would probably set you apart from most I know.


Every time I see stuff like this I think of Grandma Moses, an accomplished artist who started painting at 78: https://en.wikipedia.org/wiki/Grandma_Moses


My father is 59 and started to learn programming half a year ago. So far I was giving him algorithmic tasks to learn basic language constructs, he is now comfortable with basic Java and is able to solve most of easy problems from programming contests. And idea where to go from here? I don't think solving more difficult problems (like that involving algorithms or creative thinking) would make sense at this point. I tried to give him simple GUI project (tick-tac-toe in Swing), this kind of worked with lots of my help, but of course it was badly designed with model-view mixed, and he is unable to understand design pattern concepts at this point.


I guarantee you that if your father is 59, that at some point in his life he's found a way to be more efficient at whatever his workload was at the time than a raw beginner. Design patterns are exactly that: patterns of efficiency.

The terribad thing about them is that they don't often explain why they are more efficient than the the naive path.

I'd recommend that you pose a series of tasks to your dad, and work with him to build them out, rebuilding them several times if necessary, to start that deep understanding of the art. Adopt a posture that this work is critical, and that you are working together. You'll both learn why as you do it.


Give him a real problem to work on. It doesn't have to be big, but it has to be directly relevant to his life. Solving toy problems for fun is a good start, but to get further engagement, you need a reason to be doing x, y, or z.


At 31 I took my savings for my house, quit my robotic customer service job and started a startup. I worked on my 1st startup for three years and along the way taught myself front end development and design. Which I now do for a living.

I say startup and if it fails like 80 to 90% due you gained an in-demand skill that you can use to make a nice living.


Would you have any advice especially on how to master design skills and how to deal with pressures around personal finance when starting out on your own? I'm about to quit my job in 'enterprise' software development because I am bored to death.


Save up a lot of money, ask family & friends to invest and apply to incubators that provide seed capital. Also move back in with family if that's an option.

This is what I did and it allowed a three year runway to try and make it happen.

It didn't happen in terms of a financial success but it was a lot of fun! Way more then working for the man in any field!


"Learning to code" is somewhat vague.

The "Sorites paradox" is something like: how many grains of sand form a heap? if you remove or add one, is it still a heap?

So, exactly what exactly makes you a programmer? that varies a lot depending on who you ask. Someone said a programmer should be able to detect and report a bug to a hardware manufacturer. Some others say that "learning" (partially, because most programmers don't know every single aspect of a programming language) a general purpose or Turing-complete language makes you a programmer.

I define an "X programmer" where X is backend, frontend, data, whatever... as someone who can not only implement a feature, but do it through understanding rather than through a heuristic of trial and error or reusing code. Also, a person that is able to troubleshoot what is going on if some of the underlying systems is not working as expected.


I would argue that the most relevant definition would have to address a programmer's role in society rather than their level of actual skill. In this sense anyone having learned enough material to have an actionable skill that regularly comes into play in their lives can credibly be said to have learned to code.


I started in my 30s after an earlier stint in high school. It was a real struggle. I work in a SE engineering role now with a focus on data science. My stats and math skills have given me an advantage but I still feel like I'm a rookie in many ways. It is important for more of us who transition to SW careers to speak about our struggles and techniques to hang in there. It will render confidence to those who feel alone as they try to find their footing.


You need more stories like this to show people who wouldn't normally consider CS as a viable, lucrative path to a second career. Areas with high unemployment and people in dwindling old industries may get a second wind in life if they tried his approach. A big change like this also requires multiple exposures to the currently much easier to reach CS education as a possible solution, so I hope more people produce accessible content like this.


I'm 36 and already feel "old" and unfit to continue pursuing a career as a software developer, which I consider(ed?) my dream job. I began programming at ~20 yo but had to work in another barely related field (still in IT) because where I live it's more profitable as a lone ranger. It's difficult to find peers in my area.

I work as an independent consultant wearing many hats, doing all kind of weird network related jobs for small cable operators and small/medium businesses in a shitty country in south america. This includes devops tasks, planning data networks with structured cabling, fiber optics, setting up and maintaining servers, routers, switches and a bunch of appliances that I didn't even know they existed a few years ago (all that ugly shit in HFC networks). I hate my job and feel very unhappy and depressed. I'm on meds, many visits to psychiatrist lately.

All these years I kept learning all I can. I'm an avid *nix user, can program in a few languages and have read more about programming languages, libraries, frameworks, etc. that any other subject that I can think of. I dropped out of university only a few years from getting a degree but continued spending my free time learning about software development just because I like it. I enjoyed many detours with many technologies, loved learning Java, C++/Qt, Python, Go, Perl, etc. I spent too much time and money in books, online courses, software licenses, etc that I feel failed and guilty.


This mentality makes no sense to me. I don't understand why young people feel old in this area so much. It would make sense if you where pursuing Tennis (the sport), but software? Software is a lot of solving riddles and recognizing patterns. Seriously, Silicon Valley is poisoning peoples minds.


age discrimination in the industry is real, especially for those who don't go the management route.


I'm in a similar situation but I work in 'enterprise' software development. What makes you hate your job? It seems you are very skilled in various areas and others seem to recognize and value your skills- that seems to me something to be proud of instead of feeling guilty! Is it the pressures that come with the job?


Yes, I think my discomfort comes mostly from that. And from realizing that I'm getting older, with too many responsibilities and less time each day in a path with no return. At this point I even doubt switching to a software dev job would be satisfying for me anymore.


As student trying to make sense of job space and prospects, there's just too many statements that gets posted on the internet that seems to contradict each other.


Going from not working in the industry to leading a team of developers in just a few years is extremely impressive. I have over a decade of experience as developer and have not made it yet to that kind of lead position. Is this because your technical skills were superior to your peers or because you possessed additional soft skills, if so, what advice would you give for moving into Lead Developer/Engineering Manager roles?


Is a full stack person still realistic with today's web technologies?

I mean to build up expert level skillset, you'd have to really dedicate your self into learning the particularities of not just languages but also their runtime environments.

Unless you have no life, and only sleep, eat, code, or super intelligent, being able to absorb and stay current with everything.....

Other than that, I just don't see the full stack mentality working


The value of being a full stack dev is not to be an expert in everything, as you're right that isn't really feasible. The value comes from being able to do a good job at each piece, so that you can take an entire project from concept to completion. Most full stack folks naturally develop areas of strength and focus within that, either frontend or backend, but still benefit from the fullstack context and mindset. That has been my experience anyways.


as an org, what is the value of hiring full stack vs specialized individuals for each part of the stack? I guess one reason is if money is of concern. I can't think of any other reason for doing so.


Money is always of concern. But additionally a full stack can take lead on an entire project. There's also an increased organizational/communication overhead for every additional person you put on a project. It simplifies things a lot if there's a small number of people working on it, even if more devs are available.


It is absolutely feasible.


A possibly similar tale is the one being done by some former Kentucky coal miners:

http://spectrum.ieee.org/energywise/energy/fossil-fuels/the-...


Here's a longer great Wired article about (I think) the same group of coders

https://www.wired.com/2015/11/can-you-teach-a-coal-miner-to-...


Another similar group I've been following with great interest, in part since I remember the founders from Strange Loop and Overtone hackery:

http://www.minedminds.org


I learned to code at 18. I did not fall in love with programming: this owed at least in part to Fortran IV, punch cards, and a Burroughs mainframe that was often under maintenance. But I coded a craps game simulation, and passed.

I relearned to code at 31 or so. There was data over here that I needed in a different format over there, and didn't care to retype. I taught myself some minicomputer assembler from the instruction set reference. At that same job, I learned to write macros in the OS's command-line interpreter. I found that I enjoyed programming. And I went back to school.

That was a while ago, long enough that the second or third language that I learned on my own was Perl 4. I would never have called myself a ninja or a rockstar. Yet I have over the years written some very useful code.


I learnt C, C++, Shell scripting gnu makefile creation directly on project. When I did my degree I only knew C just for sake of passing. I was directly exposed to writing device driver for I2C and SPI the very first day and someone just dumped a 1GB of technical junk on my PC which include some APIs of RTOS I was supposed to work on! But I would say that that was really a steeeep learning curve... I am amazed and surprised today when I look back from where I started 13 years back :)


I have found that the problem i have with learning programming is not the logic of it, but of memorizing and internalizing all the functionality provided by the standard lib etc.


What I found recently of someone who switched from another career to programming is not that they struggled with programming so much but that they struggled with the environment. I had the misfortune of working with an ex-lawyer, two years of programming experience. Hell. He also lacked the ability to have any sort of interesting conversation about programming as he had no background to reference.


So do bootcamps teach data structures and algorithms?


Generally no. Most jobs building Rails or React apps don't require those skills either.


I read this as "How I learned to code in 30s" and I thought it'd be a parody of "Learn X in Y" tutorials.


Reading that makes me glad to be a network engineer. Ethernet, BGP, and OSPF don't change all that much. I am all for learning the latest Python, NetMiko, NAPALM stuff for network automation. This article reads like masochism.


mother earth is pregnant for the third time...


2017 : codecamps produce an army of amateurs that make interent of shit.


I've been making websites for over twenty years, and I can assure you that there have always been bad web developers. Some are self-taught and some learned at university. Just as there are good ones who have learned in those ways too. Codecamps are no different - there'll be bad developers and good developers who learned through attending them. There's nothing inherently or automatically worse about codecamp graduates. It's all about the individual.


Ok, I have been working in IT for 15 years and have seen some shit too..and I would never hire a person who attended codecamp, to me it does not seem to be reliable way to grow a developer. It's more like a trick that only takes the money from people who want to live the software developer life in the Bay Area.


Wow that's extremely shortsighted given that there are definitely world class engineers at Google, MS, etc who never had formal training.


definitely? Do you have any solid base behind this claim?


The title implies as if you are ever 'finished' with learning to code, anybody thinking about starting, this is a lie, it's a never ending road :)


I'm facing problem of finding a mentor and space I want to succeed is being able to do anything with power of Python!


This is great advice for someone learning to break into the coding world.


Good inspiring story


contains a lot of real advice. the sharing of experiences and insight into his process makes this piece really great.


I started learning to code when I was 31. Though I did have an engineering degree, but I learnt basically nothing after getting into engg school. Spent most of the 4.5 years worrying whether I was smart enough for this to do this and setting myself up for very dismal results.

Became an advertising copywriter after college and spent 7 years in the copy mines. It was truly a profoundly uninspiring industry (though I continued to doubt myself and never really got to where I wanted to and should have)

Founded a startup with a friend hoping for a fresh start. Took forever to find a developer so in some strange moment of overconfidence (sanity?) I decided I would take a shot at it and started learning Python. Found myself hypnotized by the codeacademy course and knocked it off in 3 days or less.

Some a few started programs then a developer friend came on board as an advisor and told me to pick up Django. In a few months (with him and another good friend doing all the heavy lifting) I got enough into the thing to be able to scrape data, make API calls and develop the admin interface.

With everything I learnt I found a block of that constant self doubt melting away. I had never felt so capable and in control in my entire life.

Startup wound up though and I had to take a job at a design agency. Though I picked up the basics of HTML and CSS there most of my work was managing clients (aarghh) Left in a few months as a writer at this startup working part time.

But within a month of me joining the CTO quit and the company was in massive flux. I just stepped forward and said I would code. The other developers happily took the help and I got my first job as programmer. The next 1.2 years were just full days of writing scripts to automate our workflow and figuring out this danged JS, Node thingy (which I really love now btw)

When this place wound up too and I studied React, now have a big 6 month project at this company helping them automate their workflow with an admin app. Am writing the fullstack code, all by myself. Which is so exciting and empowering.

Programming is awesome. It's my one advice to anyone who asks me for advice these days. It changed my life completely. From being a constantly depressed and volatile guy I am now fairly confident and really rare to anger.

Surprise bonus, I have become far more creatively productive after leaving the creative industry and have written a bunch of songs (that I don't hate) and also started learning to play the Piano, something I always wanted to do.

Next up is Algos and Data Structures the next time I have enough saved for a 3 month immersion. I really do think they are super important. Plus picking up a new language. Suggestions welcome.


[flagged]


Because switching careers is hard and scary. Some would find it encouraging to read others accomplishments and the paths they took, in order to do the same.


> Learning to code is not hard, finding a job is not hard. Most people would be able to do shitty javascript apps if they only put in the time. Stop posting this shit, please.

I can make JavaScript apps, but can't find anyone who wants to pay me to do so. Are you hiring?


It's not that hard jeez




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: