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.
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?
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
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.
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 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...
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 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.
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.
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'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.
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.
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 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.
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 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.
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?
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.
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.
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).
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.
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.
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.
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.
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.
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.
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?