Ask HN: Late-bloomer engineers, when and how did you discover programming?

38 points by weakfish ↗ HN
Personal curiosity as I am a college sophomore who has been programming for a year, self taught because I’m in a different major. Most stories I see on HN are “I started BASIC when I was 9” so I was curious for the other perspective closer to mine.

43 comments

[ 3.1 ms ] story [ 104 ms ] thread
You started before me!

I bought a book on PHP the fall of my sophomore year of college. I'd built websites and sorta knew how to create <div> tags and CSS basics, but I'd never dealt with programming logic before.

Best decision of my life.

I grew up in Birmingham, AL and graduated high school in 2009. Our school didn't offer CS. Nobody's parents were computer programmers. Everybody's parents worked in medicine or law or banking or cooking or something along those lines. Nobody I knew - except for another kid named Robert - knew that programming computers was even a thing that kids like us could do. Robert and I would make stop-motion videos with Legos as kids, played with cameras and video editing and special effects.

I think Robert is the only other person in my graduating class of 348 people (348 quite smart people - we had 29 National Merit Finalists our graduating year!) who have learned about programming thus far. I think my high school finally started offering CS last year.

For me, I was trying to build an SMS group messaging app (this was before GroupMe or WhatsApp or anything else like that). I couldn't find anybody to build it. The summer of my sophomore year of college, GroupMe had been built and sold to MSFT for $100 million. I decided, "Why can't I learn to program? Then I won't have to find somebody else to make my next idea." I fell in love with programming!

The spring of my sophomore year, I also enrolled in CS 101 (I ended up minoring in CS, although reading books and doing online tutorials was far more helpful). The professor, who wrote compilers for IBM for over two decades, said at the start of the class, "You are in the right place. When I showed up at college, I'd never seen a computer before. I went on to have a thrilling 25-year career." Since I imagined everybody else had been programming in their basement since they were 8yo, I was relieved.

It's never too late to start something. I wrote this article about collecting sand when I was a kid (which relates to this very topic). It made it to the front page here on HN which I thought was neat: https://news.ycombinator.com/item?id=22131552

This was a good read, thank you - I'm also getting a minor due to my school not letting me change my major to an engineering discipline without being set back more years than I can afford.
That was the same for me. I was studying econ and philosophy in A&S. Unless you started in the Engineering School as a Freshman, you simply wouldn't have enough time to get all the credits for a major there.

The best way to prepare for the job market though is to build things and publish them.

I do wish I could go back and pay more attention in the CS classes I did take.

I think PHP will end up being the BASIC of our generation. It was so easy to pickup and understand. The fact that it was really a templating language helped people make that jump from static HTML -> programming in small increments. And once you knew PHP, you weren't locked into web-dev. You could easily leverage your knowledge into systems development; I think roughly 40% of my PHP work ended up being backend utilities for Linux.
Agreed! It’s easy to forget how popular it was in the 2000’s
Got to college not even knowing how to type - hadn’t used a computer at all but decide to study computer engineering.

One major advantage is you didn’t take anything for granted... e.g 101 level classes were truly useful to me.

I was working in manufacturing after getting a degree focused on quality assurance & management. I started to hate the work and the fact that my employment was dependent on a large company in a field that was moving outside the US.

Ive always been really fascinated by computers. I'd built plenty of them but never got into the software side and had no idea how it worked. I started teaching myself on the job by starting projects that I could accomplish by programming. That was 2 years ago, now I am on a datascience team doing my work in python. I started teaching myself when I was late 20s.

There used to be magazines that would print, line by line, entire programs in BASIC for pages and pages. I did those as a kid on a C64. That definitely wasn't programming because I was basically just reading a recipe.

I officially took a BASIC class in Jr. High, but shortly after that, x86 took over and I really didn't do much with computers throughout high school. I got a PowerBook 145 for college where I majored in econ.

My advisor somehow got me an account on a VAX machine and that's where it all started. I was one of the first at my school to have email. Played around with some MUDs, gopher, ftp archives, etc. I eventually started goofing around with HTML. That was far more interesting than my econ work. I looked at changing majors, but my school's CS dept was severely behind (late 90's by this time. The only thing they were teaching was C and Assembly with no internet technologies. I heard they didn't add Java until the early 2000's.

Dropped out because by this time if you could spell programmer, you got a pretty good job as one. I was floating around with frontend stuff, but knew I had to learn backend as quickly as possible. I bought Fast and Easy PHP by Julie Meloni (which I still have!) to help a local animal shelter build a huge database driven site. It was one of the first in the state. That was a game-changing resume item at the time.

Now here we are. Go/Python/Node are my primary tools these days. I eventually did finish my econ degree, but my career is software engineering.

I was a health science major in college spending a lot of my free time programming an LP-MUD (this was mid-90s). I think it was my sister who said that I seemed much more interested in programming than health science. I switched into CS about a year later. If I had been smarter and ambitious enough I would have double-majored in CS and Health Science.

Fwiw, I had zero to little real programming experience prior to enrolling in CS. It was a hard road but well worth it.

Graphic Design -> Web Design -> Wordpress Sites -> Front End Dev
Had to really learn scripting for a notorious CAE and it was Pyhton, jumped on that ship reluctantly but it came good ten years later.
I finished my BA (teaching). Went on to a different city to get an MA. Due to costs, I felt like I had to find a part-time job. Applied to a fortune 500 tech company to be a receptionist. Had pretty much 0 programming knowledge at the time.

I quickly realized being surrounded by amazingly smart people with passion for programming is way more beneficial than my masters. I stopped my masters, and started on a never-ending quest of computer science self education.

Every day, 1-2 hours after work, every weekend, 3-6 hours, I spend time on Coursera, EdX, math texbooks... Learning compilers, networking, iOS apps, JS, Java... whatever you give me, I'll learn.

7 years later, I have an "architect" in my title, my salary rose more than 3x. Still probably underpaid, but the pace of learning and opportunities I get far outweigh the salary (e.g. got certifications and trainings worth hundreds of thousands of dollars at this point).

I am also finishing a CS undergrad for fun in the evenings, but my resolve on that is waning. I can do the same for free on my own, minus the degree. I do like the math classes, which are far more rigorous than I'd be on my own. Other than that, it's been kind of meh.

Curious about your experience on doing a CS undergrad for fun in the evenings. I work as a developer, but don't have an official CS degree. Some part of me wants it, even though I already have a BA (econ). I'm hoping to do something similar, but haven't jumped in yet. Is your undergrad online or in person? If it is online, any schools you recommend? Are you finding work + school exhausting?
I was a couple of years out of college, having been an sdr at a tech company > managed sdr’s > moved into business and sales ops.

I was hitting snags trying to do analysis with excel and couldn’t vlookup or pivot on a table with a million rows. A friend mentioned in passing that python would make this pretty simple.

I started there and tried to solve problems I was facing with code instead of excel.

Fast forward a year or two having built a few projects on the side, quit my job and started selling software I built from scratch.

I found having a project to work on that solved problems I faced made the learning effort so much easier. I struggled early on trying to solve fizz buzz-type problems because I couldn’t see them solving problems I faced day to day.

I don’t code much anymore but having that arrow in my quiver changed my career trajectory significantly. I recommend learning as soon as possible!

I can second the experience that learning things in order to solve a problem works great. I struggle when I just have to sit down and lear something from scratch, without any direct application to the knowledge. But as soon I can project concepts and theories onto a problem I want to solve, I have no issue learning new things.

Currently I learn a lot about relational algebra and algebraic semirings, because they are part of the theory behind constraint programming, which I use in a current project.

Out of curiosity, how would you say that relational algebra and algebraic semirings help you with constraint programming? While that can indeed be useful in some cases when doing research in constraint programming, I am curious how it helps you?

Background: I'm a researcher in constraint programming and sometimes user of it in work-related projects.

Not directly with constraint programming itself. And also, I'm not doing a deep dive on these topics. But having an ideal of what is happening under the hood makes gives me more confidence in working with a tool and reasoning about choices.
Interesting. I don't think that would be my first choices of study.

If you want to know more about how constraint programming works under the hood, I can recommend the coursera course Solving algorithms for Discrete Optimization, in particular weeks 1 and 2 for constraint programming. https://www.coursera.org/learn/solving-algorithms-discrete-o...

(comment deleted)
When I was in high school, I wrote programs for TI calculator to help on quizzes. At 15-20 I gamed quite a bit and did some server maintenance and set up. I tried learning HTML and making sites but never really got into it. I also built many computers for myself and friends.

At 26 I was studying criminal justice, then I had some health issues which would affect the physical aspect of the job, so I switched to CS. I used to think I was stupid because when I tried HTML everything seemed so hard and took long. Then in my CS program, while still dealing with health concerns I did exceptionally well in almost every course, always top of class and I learned that it is easier for me than others.

Before graduation I had job lined up. I am making decent money in non-tech but interviewed in quite a few companies and got offers, they never matched the amount I worked from home though, so I did not make the jump. I also realized I'm a pretty good self-learner and now read books and do online classes non-stop.

Not a programmer, but I wrote my first proper script (lots of if/else) at 37 and the world of automation and scripting/programming opened up to me. I work in mostly a Microsoft land, Office 365 and Azure so I work mostly in PowerShell 5 and 7. My daily driver for work is Pop_OS! 20.04 as PowerShell 7 is decently multiplatform now. Current interests/learning are Python and Nim. I don't think you are ever to old to get started.
Well I'm currently in school for a CS degree in SWE. I'm 25M currently attending a state college with hopefully 1 and a half years left if all classes align.

I didn't know what I wanted to do when I graduated high school. I just wanted to work. I tried community college but sorry burnt out. I tried business, welding, and IT. I passed a few classes, others I just quit attending. I had no goals or direction and super depressed I couldn't even get a job that made more than $11/hour. I worked probably 15 jobs total in my life by 21. In hindsight looking at it I think this mostly had to do with me wanting to be a priest but people talking me out of it. I struggled with religion ultimately just recanting allowing for myself to rebuild my purpose as a weird way of putting it.

I then got an assiciates degree in business and started working at a bank. From there I worked for a few years building up skills and experience. I got really good with Excel and realized a lot of what I was doing with the functions was very similar to programming. So the logic part and substituting variables was super easy for me to comprehend.

The thing I really appreciate about going back to school now is I know what's what. I know what matters and what doesn't. I had a fully laid out plan and understanding of the way in which I'd achieve my goal. It's so weird that the whole Corona issue didn't even put a dent in how I planned things out. I think it actually helped even get an internship. I'm still very green in terms of skill though. But I enjoy learning it because it's a skill. It's not like hypothetical nonsense they teach you in business classes.

I'm 36 and didn't start programming until I was 29. Tried to work with people on a project, got frustrated and decided to do it myself. I only did full time programming for a very short time, but I still write code for my job regularly and do side projects here and there for fun. I know full time engineers at big tech companies that didn't start programming until their late 30s. I'd say there isn't such a thing as a late bloomer because life isn't linear like society would like you to believe.
As a kid I tried getting a BASIC program working on the TI994A, and poorly communicated that to the math/library/tech teacher at my school, who in a moment of disinterested frustration told me you're either born a programmer or you're not. So that settled life for me, easy enough.

And then in my late 20s I'm stuck with a program tearing through my customer records, overwriting values with empty fields and apparently at random. I was able to pull the script from the created username id that did the overwrites, and ultimately derive the flaw as being a 'match first instance by name' with no other restrictions (including overwrite protections in place for other end users, and ignoring things like same names in different states or intentional duplicates for regulatory or industry purposes).

So something didn't feel right that I was able to unravel what this script did wrong yet not be able to program it. When I found out how much the contractor made to write that sloppy POS, it was a career given.

How many fields can you say you doubled your salary with a job hop, really?

I started when I was 29. I was a Product Manager with a marketing/business background and wanted to learn how to do it myself. Udemy courses on Go was where I first started and then progressed into building my own side projects with Go/Vue.

I decided if I was going to make the switch I needed to learn something new. Having 2 years of Go experience puts me on a better position in the market. I can't compete with the guy/girl who's been writing Java for 13 years but I have SOME unique skills as a Go developer. That was my strategy at least.

Even though I wished I had started earlier, being a late bloomer has helped because;

1. I have better processes for learning concepts than I did when I was young, and so I can progress quickly.

2. I have a broader perspective. Seeing things from the business/customer side for so long stops me from building elaborate complex solutions for inconsequential problems that won't make it to production.

The Nick Parlante python videos. First time it ever made sense.
I got a degree in public relations and took a job doing tech sales at a Series A company. I was the 6th employee. The product was pretty unstable so I taught myself to code to improve their QA infra.(basically writing automated tests). I went on to build product for them.

Now I work as a SWE at FANG (not Amazon).

I definitely remember feeling like you did before I joined my first big company, but fortunately it's working out. Happy to answer any q's you might have along the way.

Why is it important that you're not at Amazon? Because they'd be biased against engineers with your background?
Thanks! Do you have any recommendations for types or scope of personal projects? I see the advice to build stuff a lot but never what or how much. I’m specifically interested in security and systems, NOT front end web dev which is what most guides and stuff are geared towards.
> Do you have any recommendations for types or scope of personal projects?

you're in a really great place to teach yourself because colleges will generally have hands-on, free help. Beyond that I would say get projects that people or business need - you'll be way more incentivized to learn. An internship with a small startup where you work for cheap would be a really great starting place. It's a tradeoff - cheap labor for them if they're willing to help teach you.

For security & systems, look for backendy, devops, or rel-eng. opportunities. You'll quickly learn a lot.

My fascination with automation basically is how I discovered the art of programming... programming is automation in it's most distilled form.

The path I took to programming was long but a relatively common path:

- Lego

- Which led to Lego mechanics

- Which led to mechanical engineering

- Which led to manufacturing

- Which led to automation

- Which led to programming (about 22 years old)

I'm 40+ been coding professionally for two years now.

I used to be a network engineer but the nature of that business being treated as costly overhead and my personal interest slowly diminishing meant when my employer was bought I had a chance to think about if I wanted to do that and I .... did not.

I tried coding in college but:

1. I was a terrible student at that time.

2. At that time it was largely "Here is a book about C ... memorize what I tell you in lecture... now figure it out."

Not a good combo.

I was always interested / reading about coding and I went to a bootcamp and found I was suddenly a good student out of nowhere.

I think maturity and focus (both came late for me) resulted in being really excited every day that someone was going to drop some knowledge on me in a way that...I didn't get when I was younger. A couple other older guys in class had the same experience.

Coming from a different background has helped in some ways. My coworkers can code faster than I can, but I find I have experience that I can pickup businesses logic, craft it appropriately / so that it is useful and can be extended as needed, and can talk to customers easily.

Awesome! How did you learn how to code? Did you self-study or took coding classes online or bootcamps?
I'm nearly 50 and started at 39 1/2. I programmed BASIC back in the 80's and loved it but never thought of it as a career. I did however get very into Linux starting like 2005 but didn't program and never even considered I'd do that for a living.

Anyway, I wanted to build a device about a decade ago so I quit my job and learned a little Python so I could control it. It didn't work out after like a year. It was dumb idea and I didn't know enough to really do it properly.

But by that time I had somewhat of a handle on Bash and Python and basic HTML and someone approached me about building a small accounting app so I did it and picked up enough jQuery and CSS and SQL along the way from Stack Overflow it worked out. It was a mess but it worked. A maintenance guy at my apartments saw it why I was working on it, and his wife worked for a company that needed a similar app so I went and talked with them and wound up doing that and it was less of a mess (still not ideal). Then I had an idea for a SASS based on that, built it, didn't market it and wasn't that good, it generated 0 interest but I learned a lot more along the way and had taken some online classes in the meantime. Enough so I landed a real programming job for like a year where I learned even more. I had some freelance jobs on the side during this time. The job sucked and I quit and went back to freelancing and have been working ever since.

I will say it's a grind and you have to love it and be temperamentally suited for it and really put in some hours if you take this path. And it's probably easier if you are like in your 20s but it's still very possible.

I see a lot of people who think they will get into programming because it's a bunch of money but I think that doesn't generally work out as well for them. The interest is what drives you to learn new stuff and put in the time and beat through the frustration for hours until you are dancing and can just do stuff with your eyes closed. Not the money. I will say though lately I'm a little less excited as I see the same thing over and over but it's still cool and I'm really grateful to have had the time and opportunity and whatever mental dysfunction it is that allowed me to amass the skills I have. I don't think I'm super knowledgeable, I don't have to be the smartest guy in the room, I don't know much about advanced topics and would never pass reverse this tree whiteboard tests, but I can pump out useful apps that are increasingly maintainable and pleasant for end users. And people are willing to pay for it which still floors me sometimes.

Hi,

I am 43. I am probably atypical for my age range, as most friends would have started with an Atari, Amiga or Amstrad computer, and I had a PC at home from maybe 1984. I always complained that I had crappy games as a result, but for the rest, the PC was fine. I still remember text only Microsoft word.

I started programming in Microsoft BASICA, getting lost in GOTO hell. Then, Pascal, and, at age 13, I put all my savings in buying a C compiler (costed 100€ or so), and also getting a graphical library through shareware (remember ordering the floppy disks by mail).

At university, I moved from C to java, and I more or less stayed there as java is good enough / common for my trade in entreprise IT. I also do not like scripting languages, and prefer compiled languages (faster, errors found earlier).

I dropped out of highschool when I was 16. Worked at KFC and McDonald's. Went to a local community college for a couple of years and learned how to program at 19. And then shortly dropped out again.

Eventually, my parents convinced me that I should go back to college. Which I did at age 24, as a 1st year computer science student.

I graduated with a CS degree from a university almost no one has heard of.

Today, I'm an Engineering Director at Google and I love my job and the people I work with.

You don't need to start programming when you're 9. But there's no substitute for putting in the hours. Or learning the material. Maybe you should switch majors?

(comment deleted)
I was hired by Travelocity in late 2007 to be a designer, but I displayed some coding proficiency. I had taught myself the suite of XML related technologies the year before. They could not find competent UI developers no matter how hard they tried, so I was involuntarily transferred to a front-end developer role in early 2008 (age 28).

I have been doing it full time ever since. Most of my code and learning come from open source projects opposed to my full time work in the corporate world.

As somebody who is self-taught and has maintained two jobs in unrelated careers/industries I have 0 sympathy and 0 patience for developers who do this work full-time yet still cannot figure it out without some framework to do their jobs for them. The general incompetence, immaturity, and accompanying excuses that seem to plague front-end development is really the worst part of the work.