
Ask HN: Late-bloomer engineers, when and how did you discover programming? - weakfish
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.
======
wilsynet
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?

~~~
strikelaserclaw
Thread closed.

------
secondbreakfast
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](https://news.ycombinator.com/item?id=22131552)

~~~
mywittyname
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.

~~~
secondbreakfast
Agreed! It’s easy to forget how popular it was in the 2000’s

------
kyle_morris_
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!

~~~
lamchob
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.

~~~
mzl
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.

~~~
lamchob
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.

~~~
mzl
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...](https://www.coursera.org/learn/solving-algorithms-discrete-
optimization#syllabus)

------
snapetom
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.

------
sua3000
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.

~~~
weakfish
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.

~~~
sua3000
> 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.

------
BossingAround
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.

~~~
gorbert
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?

------
duxup
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.

~~~
johndavid9991
Awesome! How did you learn how to code? Did you self-study or took coding
classes online or bootcamps?

------
pkrotich
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.

------
markymark99
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.

------
openlowcode
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).

------
CoffeePython
I was pretty decent at music in high school. No interest at all in tech or
programming. Went to a top 3 music university for a year and burned out. The
hours required were intense. The competition was fierce, and the outcome of
getting a music ed degree wasn't that bright either.

Transferred to a nearby university and continued music education for a year.
Competition was less fierce but the hours required to stay in the school were
still intense. Much more than a CS degree required.

I had my first son during my second year of university. Dropped out. Got a job
at a regional gas retailer that's known for paying their people exceptionally
well. Moved into doing maintenance. Did maintenance for 5+ years at said gas
station. It was great! Pay was good, troubleshooting skills got much better,
and I liked most of my job. I ended up meeting my SO there also! Downsides
were 50+ hours/week, work weekends, on-call, work holidays, can't choose
schedule, work overnights, etc.

Had a breaking point with my boss at gas station. He screamed at me over
something small without letting me explain. I couldn't go get another job in
the same industry that payed nearly as well. I had bronze handcuffs basically
(not as good as golden handcuffs). I had been tinkering with diy project at
home and ended up buying a raspberry pi and learning some python. LOVED it.

I started going to university again at 24 for computer science. I worked full
time doing maintenance and did 8-12 hours of school per semester in computer
science. I felt super behind too.

I joined a programming club that changed my life. Met a ton of great people
who set the bar for programming higher than I thought. Won a few hackathons,
got hiring letters at a few internships (which I ended up not taking due to
needing to maintain my insurance for my son and needing a full-time income).

I went to a ton of local meetups and met one of the partners of the consulting
firm I currently work at. He did a mock interview at a meetup with me. We
connected on linkedin and he hired me a few months later.

I've been at my current job almost 2 years now. It's been fantastic. I still
love programming as much ever. Love the people I work with, and love working
in tech.

------
LeoTinnitus
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.

------
strikelaserclaw
I don't think starting programming as a sophomore in college even puts you
close to being a late bloomer. There are many many developers out there who
have been working with the same 2-3 year knowledge for like 15-20 years. Keep
learning something everyday, tax your brain so that you can really feel it,
and i guarantee that you will be caught up in no time.

------
Psyladine
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?

------
avgDev
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.

------
droobles
Graphic Design -> Web Design -> Wordpress Sites -> Front End Dev

------
austincheney
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.

------
mzl
I learned programming when I started university, and realized then and there
that this was exactly what I wanted to do. I've never felt the "late" start
was a hinidrance, and I've been very happy in my professional life.

While some people have years of experience programming when they come to
university, it is not always a good thing as I saw many times as a TA. Many
come with _very_ bad habits but enough skill that they can coast through early
classes, until they hit road-blocks trying to scale up what they do. Not
everyone of course, but it is good to remember that all programming is not the
same when it comes to developing skill (as in any endeavour).

------
mythrwy
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.

------
adingus
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.

------
Elof
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.

------
thewrinklyninja
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.

------
bg4
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.

------
gitgud
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)

------
DrNuke
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.

------
quixquaxqux
edX/coursera when I was 23 living in Europe sleeping on a friend's couch with
a bunch of credit card debt. I had never encountered the idea of programming
computers before then. Absolutely turned my life around.

------
therockspush
The Nick Parlante python videos. First time it ever made sense.

