Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How many of you are employed, self-taught SWEs?
64 points by pksebben on Aug 30, 2020 | hide | past | favorite | 70 comments
I'm super interested in knowing things like:

- Why did you get into the field? What did you focus on at first?

- What are you doing at your job? Is it everything you dreamed of and more?

- How did you break that first-job barrier?

- What were you doing before this?

- Any tips for the rest of us?

Appreciate your response in advance! Keep hacking!




My degree was in music, but I dabbled in tech courses too - calculus, discrete math, logical circuits, just because I liked those classes. I took a workshop on C but hated it. I didn't like programming until the internet became a thing. I learned some perl as a student, on my own from reading the book and trying things out. My first job out of college was as a network administrator. Hated it. Second job involved some programming. I learned php and database programming on my own. I later learned java, scala, akka, node, and react on the job (all on projects transitioning away from php). After the first job or two, no one asks or cares about school education level. I'm a principle software architect now, the job is fine. Bullshit and politics are low, and it's always fun to solve a problem.

Fall in love with an uber-ambitious technical side project that you'll never turn into a business but that will make you learn every tech you'd ever be interested in. Then you can tinker on it for life and it'll keep you employable.


I have a GED and went to community college for like, 6 years and didn’t get my associates because the final “class” was sitting around the computer lab unpaid. Instead transferred to university and dropped out. Just absolutely hated it. Got married, my daughter was born and suddenly became SUBSTANTIALLY more motivated to “man up and make money”. I lost 75 pounds and suddenly I could think well enough to be a software engineer. Sleep apnea had been killing me at 300 lbs. Had a tech support job and my boss was a programmer. I’d volunteer to do work and he’d give me work that’d push me each time, like learning regexes, writing simple internal databases for the startup we worked at.

Before I had the tech support job I was working on train radiators and it was awful. Came home covered in oil. The radiators weighed thousands of pounds and could easily crush a man.

Couple months later got my first SWE job after making a side project website and making a little YouTube video about the challenges of making a modern web application, like async programming all that stuff. Just kept applying to places until someone liked me, I guess.

Then I gained the weight back and got lazy, got fired from some other jobs. For me at least being fat makes me a bad programmer. Solving health problems for me was key to being able to learn and grow, as the constant headaches and inflammation made it nearly impossible to concentrate.

My job is pretty good, not super stressful. COVID messed me up mentally and I got bad marks for the past six months but I’ve finally gotten the hang of being isolated and not being so panicked. Anxiety and depression make working almost impossible for me without Adderall or some other such stimulant. Trying to wean off of those as I don’t like how they change my personality into a more nervous less interesting person.


Man, I have a lot of parallels to this. Been on a scrip for that stuff for as long as I can remember, and I had a similar experience at school. Hearing your story really gives me hope for myself; so, thanks!

If you don't mind me asking, what kind of work are you doing now? Any tips for your past self?


I work as a software engineer mostly backend/middle tier APIs and stuff for a Fortune 500 company now.

I’d remind myself that things like alcohol that act strongly on dopamine can cause SERIOUS problems with adderall, like not feeling any happiness for a week and fun things like that. Adderall is a serious tool to be taken seriously. I joke that Adderall is like a chainsaw. If you’re using it at 3am, there’s a problem. I’d also tell myself that the Adderall isn’t what made me lose weight, and wasn’t the main thrust of me being able to learn. Losing 75 pounds and moving from obese to a healthy weight HUGELY boosted my brain power and concentration power. I was also constantly reacting to food. Had to sort that out.

Adderall let me sort of ignore it for a long time but the underlying condition just got worse. Was put on Nexium for horrible GERD at night at 34, was trembling and all sorts of scary side effects. A ketogenic diet with moderate exercise of walking once or twice a day makes a huge difference. Also magnesium is a like a miracle for my anxiety.

I’d tell me from before I was even in tech at all to just stop wasting my time failing at school and just get a tech job. Although I don’t know if I could have done it without my wife, honestly. I was really good at lying to myself and she put a stop to that shit, excuse my language. I should have tried.

I’d also maybe be less arrogant after getting a good job. I lost a lot of friends who were in a similar slacker boat as me a few years ago. It’s like they stopped wanting to hang out once I became successful which was very isolating.


Magnesium; I assume you mean magnesium amino chelate - I use that too. I was kind of pissed that I had to find out about it on the internet and my doctor looked at me funny when I mentioned it. A huge gamechanger for me was asking a friend who's also on the 'phetamines what time of day they stop taking it - now I'm religious about never ingesting stimulants after 3pm and holy crap what a difference.

I was a bartender for over a decade; there's no better crash course on how awful a molecule alcohol is. It's the worst drug.

Sorry to hear about your friends. It sucks to lose your roots, I went through something similar myself. I've come to reckon with the fact that people sometimes grow apart, and you can't always hold yourself responsible for what might just be an incompatibility in process.


Wow you and I do sound like we've had a lot of the same experiences, glad to here you're figuring out all this too. 3pm is exactly my rule too, never ever past then. Most days not past noon because my wife will ask me "have you been taking Adderall?" because my personality is so different. I go from being fun and easygoing to absolute Type-A, everything including people is either an obstacle or a tool toward a goal. I had people who saw me thriving with Adderall and started taking it – it sort of destroyed them. I'm much more cautious about recommending it. I'm having a productive day today and haven't taken any – sticking to a low carb diet for me at least seems to be the absolute most important thing for my mental health. I was so unstable and angry before.

Having a spouse around to correct my course when I start getting a little too enthusiastic about amphetamines and work was important for me too.

I use Magnesium Glycinate at the recommendation of people on the nootropics subreddit. [0] Has worked wonders.

[0] https://www.amazon.com/gp/product/B07ZD7R4RF/ref=ppx_yo_dt_b...


Glycinate; thanks for the tip. Always looking to sharpen the tools i use.


If you don’t count the two years of Java I took in high school (AP CS), I’m self-taught. No CS degree. Switched majors 6 times in college and didn’t realize until I graduated I wanted to code.

Started in QA, did that for over 3 years. Transitioned to a SEIT, did that for a year. Then finally got the software engineering title. Took much longer than I wanted but got it eventually.

Since then I’ve been through the whole stack. Now doing more DevOps, SRE type stuff. It’s honestly been great. Worked for startups, mid sized and Fortune 500s.

My only tip is if you love to code just keep doing it. Everybody wants to say “I don’t want to code outside of work, I want a life, ect ect.” The only way I’ve truly been able to learn is by having side projects and working on them constantly. I’ve had a side project going consistently for the past 7 or 8 years. Hacking on your own stuff, at least for me, brings me actual joy rather then a lot of stuff I do for my day job.


If you love to code just keep doing it is excellent advice.


Completely self taught here. I went to university for a couple years but dropped out. It doesn't work well with my way of learning. Been working professionally for 4 years.

> Why did you get into the field? What did you focus on at first?

I always liked computers and building things. It felt like a natural progression of my favorite hobbies, so one day I looked up how to write a Discord bot and the rest is history. I had made some websites when I was 12 (specifically for Sims 2) as well.

> How did you break that first-job barrier?

I found an internship when I was in university, and looked for a full time job while I was there. Once I found one, I left my internship and dropped out of university.

> What were you doing before this?

Taking a sabatic year after high school I guess. I played a lot of Phantasy Star Online 2 that year, and it's indirectly the reason my career started.

> Any tips for the rest of us?

It's hard to say because everyone's situation is so different. But one thing I wish I knew is that it's OK to not listen to family sometimes. Personally I heard a lot of backlash from them because from their perspective I wasn't doing anything really. It affected my mental health and was pretty tough at times, but probably to a lesser extent than pushing through university in my opinion.


That advice about family resonates really hard. Thanks for sharing.


- Why did you get into the field? What did you focus on at first?

I never planned on being a coder, I was a derivatives trader at first. It turns out being able to code helps a lot in finance. I co-developed my skills between building quant strategies with coding. And coding quickly swallowed up everything, it turns out it would have been easier to be a systems coder first, then develop quantitative skills. I've done an enormous amount of coding in different areas now from that journey as well as a variety of web side projects. A small amount of GUI/FE coding, a lot of micro performance and networking type stuff.

- What are you doing at your job? Is it everything you dreamed of and more?

I have a lot of freedom to decide what I want to do. So I code a lot, but it's what I want to do.

- How did you break that first-job barrier?

Responded to an ad out of uni, went to interviews.

- What were you doing before this?

Uni, where I learned a little bit of coding, but not enough to appreciate the depth. Zoomed over algos and data structures, which it turns out I ended up relearning.

- Any tips for the rest of us?

You can't really do this if you don't like it, but you also won't like it if you haven't learned a bunch of code-related skills. For instance if you don't know how version control works, you'll forever be reluctant to modify your code, which will stunt your growth. Same with sysadmin type skills like how to set up a network, how to move files around, how to set up the OS. You'll think everything is a chore if you can't write some scripts to simplify your coding flow. Something like Docker takes learning before you can use it, but once you have it it helps a lot.


What are you working on recently?


A variety of trading systems, an online multiplayer game.


How do you choose what to work on?


I’ll throw my hat in the ring...

I’m 100% self taught, and have a humanities degree. I’ve worked in global 500 companies, as well as YC startups. I consider my greatest strength to be the ability to teach myself, and that has led to front end, backend, ML, etc. work.

I have never worked at FAANG but with most of them going remote, I’ll probably take my chances next year (a kid on the way so staying with current employer to ensure family leave). To be honest, I’m also scared of the rejection.

I view the learning process as multiple steps. The first is to learn the technology to become useful, while doing that it’s really important to learn the social context of it and how to talk to others in an informed way. I can’t stress that enough.

If you are looking to break into industry I suggest doing a few side projects to demonstrate knowledge, and aim for a company who will give you a chance. For me, this was consultancy.

It requires study off the job, but I love it and would be doing it anyways.


- The Matrix impressed me when I was child. I said to myself “I’m going to build a good world, a good system, my own heaven.” after some time, I found myself reading articles about programming and my adventure has started right there. It was a huge exploration for me. I started to focus on learning a programing language. It was C.

- Taking care the system, developing new features. Yes, It is.

- I built a course system for my school, worked free about 6 months. Learnt a lot of things and this experience gave my first job.

- Make real your every absract notion by coding and drink coffee madly.


- Make real your every absract notion by coding and drink coffee madly.

so much this.


I didn't have access to a computer until I was almost 20. Incredibly fascinated by it, I sucked up all the knowledge I could. I started with general IT which turned into a generic call center help desk job. I did that for a few years while learning to code on my own. Mostly basic web related stuff which I parlayed into helping out part time on a project at the company I worked for at the time. Once I had some real resume experience on my hands I was able to work that into a full time programming job at a very small company on a team of three people doing workflow management software. It was very close to dotcom bubble days and I probably got the job because I was willing to work for cheap compared to other developers at the time. Mostly because it was more than I was making before and I didn't know what I could have been making. Outside of a few unrelated courses I have still have no formal training, certifications, or degrees and am entirely self-taught.

Today, I work as a technology lead in the innovation lab at a large reputable company doing machine learning, deep learning, blockchain/crypto, tech evaluations, investment portfolio bootstrapping. Most of what I work on is turned into a product (new or enhancement) or acquisition for the company. I think there are multitudes more opportunities than were available when I was starting out. My advice is to always keep learning on your own and from others. Don't let yourself get to comfortable and find projects that are challenging and interesting to work on.


I had been paid to do computer things before I got my first IT job. By then I already knew how to re-install Windows, build computers from parts and write some VBA code for Excel.

By the time I got my first IT job I had a Law degree and I was running Linux exclusively on my workstation (part of the deal with the uni friend who “turned” me and provided tech support for about 18 months until I no longer needed it).

Did some certs to get some pieces of paper - A+/Linux+/MCP/CCNA aiming to get a Support job. Discovered that I was the only person in a class of 30 who actually had an interest in IT beyond a job - later I would realise this is a very valuable commodity. Hired before I did all the certs for this very reason.

Got a fairly low paid job for a small company that exposed me to lots of different experience like running cables, screwing in wall sockets, dealing with customers on the phone, Windows desktop admin, Linux firewall admin, Linux server admin, data centre work, NAS etc.

Then I moved into a Linux network admin contract role role for a bit. Then got an enterprise level 2 support role (providing support to network admins). In the company for 12 years and counting - changed roles 4 times. Learned to code writing support tools (PHP and HTML) eventually learned JS also, turned out I was really really good at it and now I’m writing infrastructure code for one of the product groups.

My advice would be to learn the lower levels of the stack - networking at the protocol level, Linux, SQL without ORMs, vanilla programming with no frameworks until you start writing your own at which point pick the best on the market. Learn to run your code in a Docker container.

Passion, integrity, obsession with delivering results are very valuable - cultivate these and market them to the best of your ability. Be the person that steps up to do boring jobs that help other people - I volunteered to run our server lab that was used by other engineers and wrote some tooling to do things faster. Eventually people notice and you will learn a lot.

Avoid shift work like the plague it is and do your best to limit on-call exposure.

I like my job - it pays well enough and at my senior level offers plenty of flexibility for managing my time and what I work on.


- I got into the field because in my previous career (bank compliance), I spent an inordinate amount of time gathering data and summarizing it. The process took several hours per day and was extremely monotonous, but I couldn't do any actual work until it was done. I figured I ought to be able to automate the whole process, so I picked up a book on code and plugged away until I made it work. After that I was hooked and kept going down the rabbit hole until I could build entire web apps (and also understood how a compiler worked, which was what originally fascinated me).

- I like my job a lot, but it's very much building CRUD apps (or guiding others to do that). I'd like to work on technical problems of higher complexity, possibly scientific applications, so I'm trying to figure out how to get into that as someone without a formal education in it.

- I reached out to somebody on reddit /r/programming who had posted an ad. I told them what I had taught myself so far and why I thought I could be a useful junior dev, and they gave me a shot.

- My tip would be to let your curiosity drive you but stay realistic, responsible, and honest. The reason I've stayed satisfied in my career so far is that I haven't been too impetuous (e.g. leaving good jobs just to jump at something new), but I also haven't let myself get stale or bored for too long. So far it has served me really well.


I played around with programming as a kid, programming things like Mandelbrot sets on my TI calculator. In college I didn't take a single CS class, other than a EE signals class using Matlab. I graduated with a degree in Physics. After college I ended up in a training program at a big tech company, spending 9 months learning to be a test developer. After a couple years, I took some time off, studied the CLRS book and the first Coursera course on databases, and found a job as a developer in a "big data machine learning" company. Over the next couple years, I completed a self-taught CS degree through textbooks, video lectures from big CS schools, and a couple MOOCs.

My tips would be to take self-education slow and steady. There's an infinite amount of stuff to learn out there, and I found one "course/textbook/lecture series" per quarter to be sustainable for me.

I also recommend alternating theory and practice; studying to pass the interviews until you have a job, then emphasizing the theory that is semi-relevant to whatever job you get; and accepting that a lot of what you learn may not seem very useful/relevant until it suddenly is - six months after reading a couple books on Mapreduce program design, I was able to use that knowledge to ace an interview at a company that used that technology.


I'm almost completely self taught. Went to uni for a couple years and changed directions a bunch (CEng -> CS -> Math) before dropping out.

> Why did you get into the field? What did you focus on at first?

A friend back in high school pointed me at the problem of brown numbers (Brocard's problem), which are pairs (n,m) where n!+1 = m^2. Known pairs are (4,5), (5,11), (7, 71). I became obsessed with this and attempting to find a new pair, and spent most of high school learning programming to improve my searching programs. Things went from there, since I knew that's what I wanted to do.

> What are you doing at your job? Is it everything you dreamed of and more?

I'm a systems engineer working with Rust on AI infrastructure. It's what I expected to be, it's a good job in that it pays well and I enjoy it. It's not perfect, and I wouldn't describe it as a 'dream'.

> How did you break that first-job barrier?

Got an internship by emailing around, that transitioned into a full time position.

> What were you doing before this?

Uni, mostly.

> Any tips for the rest of us?

Find a cool problem and use it as a 'north star' when learning, I think that helped me a lot. Also, it's a big field, you may find that you don't like a corner of it, but don't take that to mean you won't/wouldn't like any other parts of it.


- Why did you get into the field? What did you focus on at first?

No real focus first. I majored in history. I worked for a while doing a lot of number crunching with excel and thought maybe a lot of what I was doing could be automated. That's how I got interested in programming.

- What are you doing at your job? Is it everything you dreamed of and more?

Currently DevOps. I enjoy it because I have a lot of autonomy and am able to work with tech I am interested in like Kubernetes. I have worked at a few companies and I think your enjoyment is very dependent on the company culture and team culture.

- How did you break that first-job barrier?

I made a lateral move the company I was already working for. I was spending a lot of my free time learning and working on small projects. I started talking with some people on the engineering team during company social events and when they were hiring one of them said I should apply.

- What were you doing before this?

Technical account manager doing client implementations. Desperately wanted to do something that didn't involve talking to be people on the phone all day.

- Any tips for the rest of us?

My experience is an anecdote, but I think that making a lateral move by getting as close as you can to the technical work at your current job is a good strategy. I had to be very persistent and there were a lot of times I was brushed off by managers and executives. Making friends with the people on the engineering team was the most important thing I did. They were happy to include me and were great mentors.


- Why did you get into the field? What did you focus on at first?

Loved programming, did it as a hobby for a few years, was able to get a job. I focused on understanding what I was doing, always dropping a level of abstraction down from the task I was trying to complete so that I could understand and debug it.

- What are you doing at your job? Is it everything you dreamed of and more?

I'm a team lead on a low level systems team. I'm actually quitting soon, but more for a move to another company rather than I don't like the field.

- How did you break that first-job barrier?

A lot of resumes, and ended up at a company who's hiring strategy was to find diamonds in the rough.

- What were you doing before this?

A little bit of everything, retail management, general contractor, project manager for marijuana dispensary upgrades, etc.

- Any tips for the rest of us?

The assumption is that without a degree you don't know the underpinnings of what you're doing. Prove them wrong early by putting in the work to cut through the abstractions and truly understand the why of what you're doing. The difference between being an engineer and being a technician is that that the technician follows a a checklist, and an engineer understands the checklist and knows how to recognize and account for the 1% of the time it doesn't apply.


I got in the field motivated by a specific problem that I wanted to build a solution for. I needed to learn programming to do that. Keeping the problem in mind has led me to study and increase my capabilities in a variety of areas, and currently I do ML research. I'd highly recommend this approach if you have a problem that is particularly motivating or interesting to you, as it can consistently point you useful directions to explore independently of any one job or piece of technology.

For the first job, mine was at a startup. Founders may be more willing to take a bet on someone who demonstrates passion and an ability to hack on stuff and get it to work, whereas big company hiring seems to be more conservative.

Performing superbly on technical interviews will always get you hired, regardless of your background. If you have a buddy also interviewing, pair up and give each other as many whiteboard interviews as you can (I did 2-3 weeks of 5-6 problems per day). You'll feel much more confident.

Lastly, work on projects you are actually excited about, and interview at places doing stuff you're excited about. That sort of excitement really shines through in an interview. Additionally, it will pay off in quality of life.

Good luck!


I graduated from college with an Economics degree. I was working as a Business Analyst. I started looking at database schemas so I could write better documentation, and then started writing SQL to deliver reports myself instead of waiting on the engineering team. It didn't take long until executives were coming to me directly for their custom reporting needs. Eventually, I was running a rogue web server for generating dynamic reports. When I was "found out", I was absorbed into engineering, and started my "real" career as a SWE and started building web applications on a team.

I broke that first-job barrier by getting myself a job close to the technology, and then solving problems that had a visible impact. (I want to add that, though I constantly pushed at the edge of my authority, I avoided ruffling feathers and was always a team player. I never went over my boss' head, for example, and generally asked permission.)

I'm now in my third executive role, running engineering for a Series-A funded startup. Being able to bridge the divide between business and engineering really hits the sweet spot for me. I very much enjoy what I do.


This is very similar to me, minus the last step. Mind talking about how you got into executive / startup roles? Bridging the business-tech gap is also what I enjoy, so any pointers or first hand experience would be helpful to hear about.


> Why did you get into the field? What did you focus on at first?

Worked in sales at a software / hardware company in the HVAC industry. Our software platform had a really easy way to customize the business logic in java. I started building utilities / scripts in java and worked my way into software engineering from there.

> What are you doing at your job? Is it everything you dreamed of and more?

I'm a software engineer working on a popular customer facing service at a FAANG. I do enjoy the work.

> How did you break that first-job barrier?

I went from sales to software engineer at my first company, moving from sales into custom customer solutions department.

> What were you doing before this?

Not much, the sales job was my first job out of college. I graduated with a mechanical engineering degree.

> Any tips for the rest of us?

You must be passionate about programming and seriously enjoy software development. You must respect senior engineers and learn from them as mentors. You must not be discouraged by the pedigrees of your peers (people with CS degrees), directly out of college, they may have a slight advantage, but after a few years, you will be on a completely level playing field.


- Why did you get into the field? What did you focus on at first?

Although I really enjoy it now, I originally got into software work for the job. After graduating with a degree in physics and French and having a tough time finding a satisfying job, I gave software a shot after seeing some friends and family enjoying the field. I started with JavaScript and frontend engineering, as it seemed to have the lowest barrier to entry at the time.

- What are you doing at your job? Is it everything you dreamed of and more?

Currently a software engineer at Google, and I started at my current role doing front end work. I've since transitioned to working all around the stack. It's definitely more than I dreamed of, and I don't think I'll ever stop learning!

- How did you break that first-job barrier?

I think I broke the barrier by a) getting my first real tech job at a startup, b) doing some very basic development work for my non-tech company job right before moving to the startup, c) building a portfolio to show off things that I had built, and d) continuing to learn after getting my first job with some CS classes.

- What were you doing before this?

I was working as a tutor for high school students while also doing some customer support work. Fielding customer support phone calls definitely helped motivate me to study in my off-work hours!

- Any tips for the rest of us?

I always hesitate to give advice because there's so much randomness and luck involved, but one thing I always recommend are CS classes. Though I started self-taught, I've since taken a number of tremendous online classes (quick shout out to CS50 if you've never taken it) that I've found to be very enriching.


I have CS50 bookmarked! I'll have to dust it off. Thanks!


- Why did you get into the field? What did you focus on at first?

Fell into it - the first computer I owned happened to have a basic interpreter in ROM, and at the time a lot of software was published in magazines (you had to type it in by hand), so that started me on my way.

- What are you doing at your job? Is it everything you dreamed of and more?

Being able to code brought me to a lot of places I would have never expected. Things change very rapidly, what you are doing today is completely different then what you will be doing tomorrow, you have to constantly challenge yourself and expand your horizons. I’ve met plenty of people who were really great at version X of framework Y in language Z and five years later they are unemployable because the world moved on while they did not. You need to get beyond versions and frameworks, entire languages came and go out of vogue, the more generalist you are the better you’ll fare.

- How did you break that first-job barrier?

I worked cheap at my first job, a year later I used my experience to trade up to a position making more the prevailing wage, things took off from there.


- Why did you get into the field? What did you focus on at first?

Got gifted a 286, and wanted to know how it worked. A retired friend of my father gave me the K&R book and I devoured it. I focused on input/output and calculations, (much) later moving to MUDs, and (much later) moving it to the web, too.

- What are you doing at your job? Is it everything you dreamed of and more?

Web-dev/sysadmin/jack-of-all-techs/tech-lead. It's everything I dream of, and have nightmares about. It's great! I get to both use known/proven/old things to build something new & useful; learn new things to build something with; and learn new things to then know when to not use them.

- How did you break that first-job barrier?

~20y ago, a newly founded start-up needed an apprentice who knew C/asm and was interested in home automation and... there I was! I can't remember details about the interview itself, but it was mostly about attitude and very little coding, as I think I already worked with them on a separate project (the C "main" routine for the C/CGI behind a search engine they had created a library for) and they knew I had the chops they wanted.

- What were you doing before this?

High school then a couple years at uni/informatics doing not much. Didn't finish.

- Any tips for the rest of us?

Make it work, make it pretty/proper/right, make it fast enough. Buildings are created from strong foundations; learn your/the basics really well. We all stand on the shoulders of giants. YAGNI. Printf-based debugging is totally fine. Communication is a big deal, and I suck at it. Communicate, communicate, communicate, and then communicate some more.


- Why did you get into the field? What did you focus on at first?

I've always been fascinated with technology and trying to figure out how things work. I got my first computer at age 8, it had QBasic. I programmed a small number of games on it. I spent a lot of time dis- and reassembling this computer, reinstalling DOS, Windows. We didn't have internet or manuals, nor did I speak English. Later on played with Linux which really helped me understand how all of this works under the hood. Actually programming came much later.

- What are you doing at your job? Is it everything you dreamed of and more?

I've been in the field for 11 years now, currently in an SRE role. SRE seems to be a different thing wherever you go. Not really my dream role in its current form right now.

- How did you break that first-job barrier?

QA internship in the gaming industry. Turned into full-time position, later on QA Engineering and then Software Engineering. I jumped on opportunities when they cropped up. I made myself useful in QA rather quickly as I have a low tolerance for doing repetitive tasks manually, which got me into automation and tools programming.

- What were you doing before this?

I tried my luck studying computer science for about 2 years but that didn't really work for me. That opportunity for an internship came at the right moment and I took it.

- Any tips for the rest of us?

Find yourself a mentor. In my first role in QA there was one person in particular who was very open to all my question and taught me how to approach complex problems in legacy code bases. It really helped me gain a lot of knowledge and also confidence in my craft. I should reach out to my first mentor and thank him, I am not sure he's aware of the impact he's had.


- Why did you get into the field? What did you focus on at first?

To build the future.

- What are you doing at your job? Is it everything you dreamed of and more?

No. I need to get back to my principles

- How did you break that first-job barrier?

By presenting myself as a low cost low risk gamble

- What were you doing before this?

See below

- Any tips for the rest of us?

I leave my education off my resume. I've been at this over 20 years and have a hard 10 year cliff when it comes to talking about things.

I consider the knowledge I left the University with as rather useless unless someone continues the practice.

If the employer cares about prestige and pedigree then leave the room, rudely if you want.

Engaging with the now is the crucial determinant of empowering the future. If the competence signalling is past laurels than you're going to get stagnating structure. I've seen it. Just leave. Aspirational stricture through institutional structure is a waste of human effort.

---

What do you care about? That's the main question. There's no easy answer. But once you can get to it let that drive and centralize your decisions.

Really that's all I can give you.


>Why did you get into the field? What did you focus on at first?

It was an accident. I needed to accomplish an admin task which required modifying a SQL query someone else wrote. I just fully dove into SQL mainly for reporting purposes after that.

>What are you doing at your job? Is it everything you dreamed of and more?

I am a data engineer for a unicorn startup. It is really awesome! The pay is ridiculous, especially considering I live in a low cost of living area but have a standard tech SF salary. Also the talent is insane. I get to interact with some really smart folks.

> How did you break that first-job barrier?

I saw the opportunity to automate an admin problem with a SQL query. I asked a developer to pretty much be my senpai, and he gave me an SQL crash course. After that, I did SQL tutorial after SQL tutorial and eventually got promoted from call center agent to data analyst.

>What were you doing before this?

I was a call center agent and working at a car wash right before that. That was like 5 years ago :D

>Any tips for the rest of us?

Get in touch with your companies IT/engineering department if you can. Lots of software people love curiosity. Try to find someone like that where you currently work. Also, do a lot of projects and be prepared to feel really confused about how things work. I think I would not be where I am today if I didn't have some really good mentors. Secondly, programming tutorials will have you believe that the world is just a bunch of for loops and if statements. But then you look at a real life production system and it's wayyyyy more complicated than that. Just know that the minimum amount of knowledge you need to have a software job is probably a lot lower than it would seem. Don't be discouraged when you feel like you have no idea how something works because it will happen a lot.


I am.

I got into the field because I have the aptitude for it, and it pays well. It’s honestly not more complicated than that.

I’m a backend-focused SSE working in healthcare.

I got an hourly position working on a legacy company intranet, where 99% of what I had to do was simply be able to write HTML. That was in 2005. I’ve worked my way up since then by constantly looking for new things to learn and apply to my job.

I did a bunch of stuff - stocking store shelves, retail, etc. My only other “career” type job was as an electrician, and even that seemed like a fallback even at the time.

Tips: as I said before, always be looking for new things to learn that are adjacent to your job. The more skills you acquire the higher the chance that one will “stick” and you’ll be able to move our of your current job and into one that is more closely aligned with where you want to be. Incremental progress was the key for me.


- Why did you get into the field? What did you focus on at first?

Always was interested in programming, wrote first lines of code (in BASIC) at the age of 6 (in 1989). Wasn't interested in getting a CS diploma until 2010. Got it in 2014 after already working for 12 years in the industry.

- What are you doing at your job? Is it everything you dreamed of and more?

Currently I am ironically back in the academia working on epidemic modeling (as many people these days), but for the most of my career I worked with financial/trading software engineering.

- How did you break that first-job barrier?

Offered to work for (nearly) free in a small company owned by an acquaintance.

- What were you doing before this?

Not much, as you could infer. :)

- Any tips for the rest of us?

Loving programming is a necessary and sufficient condition to have a good career in it. Enthusiasm here can still overcome many barriers (as opposed to many other industries).

Thank you for an excellent topic!


- I hated doing unskilled work so I taught myself to front end web development.

- it's fine. The realities of the job can often be boring, but it's not taxing. I work at a big startup and it's not the way I would run things but what do I know?

- You have to realize what you're up against. Junior dev can mean "knows the language really well but has never worked on a professional team" but it can also mean "doesn't know shit, just out of bootcamp". You have to prove you aren't the latter, but you also have to apply somewhere where they care. I bolstered my resume by speaking at JS events and doing side projects.

- I waited tables for 10 years and then spent 6 more as a massage therapist.

- keep your head up. this is a cushy gig, pays well and isn't really all that difficult. it's worth the effort.


I spent my decade bartending. Have the same motivations as yourself (fie on that completely flat wage growth in the service industry)

You're not the first person I've heard recommending talks and events. Just another reason to be frustrated with this pandemic.


All the local events have switched to being online so you can still give talks. They are also a great way to learn new things. For example, I learned ES6 by.givong a tall about es6.


Disclaimer: I'm from NZ, not the US

I did programming all through high school, then went to uni for Mechanical Engineering since I thought programming would be too frustrating.

Realized I hated it, switched to 2nd yr CS for a semester.

Then realized I'd learned a lot of the content in high school and it was quite boring, so I dropped out.

Spent the next year bumming around a bit, doing some coding and getting up to speed modern web dev then this year, I landed my first job just before the pandemic hit.

My job is quite depressing. Working with old tech, no feature work and the company is extremely disorganized. I do 10x more in my own time than I do at work. I think I'll be looking for a new job soon.

The only tip I have for learning is to code every day and build things, don't watch tutorials.


- Why did you get into the field? What did you focus on at first?

I liked playing with data in R and saw there was potential to do cool things if I learned more code during my PhD in Cognitive Psychology.

- What are you doing at your job? Is it everything you dreamed of and more?

Mostly front-end work at Amazon. I love it. I get to feel productive in ways I never experienced in academia.

- How did you break that first-job barrier?

I knew some people at a science focused non-profit. Interned while in grad school and signed on full time for 2 years before moving to my current role.

- What were you doing before this? Grad school in psych.

- Any tips for the rest of us? Keep grinding on projects you find interesting. It takes time to get good at writing code quickly. Review your own code as though it were someone else's.


- Why did you get into the field? What did you focus on at first?

I was a gamer - I started by making websites for my team (we were competing on clanbase.com) and then eventually I branched out into various MMOs and made bots/cheats/etc. I then began selling those and realized it was a better source of income than my job at McDonalds (I was ~17 then) and ended up sticking with it.

- What are you doing at your job? Is it everything you dreamed of and more?

Currently doing a stint as a solutions architect but have been a CTO at a startup and Tech Lead at Twilio launching some pretty cool products since then (still at Twilio). I expect to return to the product side after honing my sales knowledge/skillset/improving soft skills.

- How did you break that first-job barrier?

I did a little contracting via some freelancer website, but I won my first real software job by finding a security vulnerability in sendspace.com. I let them know via their support e-mail and shortly after they asked if I'd want to join to fix it, and more. Then, to break into the US I took a job as a CTO massively below market rate at a YC startup with non-technical founders that were paying huge sums for outsourced development and surprised at the value I could bring quickly.

My offer at Twilio was in part from constantly hounding the team for improvements / changes / suggestions to which they suggested I come and help do it. I was also encouraged to apply at Shopify in 2013 after writing this post https://ma.rtin.so/posts/reverse-engineering-shopify-private...

- What were you doing before this?

Studying / part-time McDonalds

- Any tips for the rest of us?

Side projects. Building tangible software will give you a much softer transition into the professional world and a more practical skillset. Be curious. Don't give up, don't be intimidated, and be willing to take risks to get your foot in the door.


- Why did you get into the field? What did you focus on at first?

I was in finance and a lot of the job was getting repetitive. Update excel sheet X times every X days, etc. You soon want to automate the boring repetitive stuff but formulas in excel only get you so far. So you reach to VBA that exposes you more to coding. Then you reach limits there and you look at scripting languages like Python. Ultimately, I decided I enjoyed that part way more and wanted to do it full time.

- What are you doing at your job? Is it everything you dreamed of and more?

I work on backend services. I think the job is better than probably a lot of others. However, it's not all that rosy all the time. On-call is something you probably don't hear about before going into the field, and I think it negatively affects quality of life significantly. The beauty around software is that it runs all the time without you having to do anything, but that also means stuff can break all the time at all hours and you might be tasked to fix it.

The agile work framework is pretty common and I don't like. It's very common to have daily meetings (they call them standups) where you have to tell everyone, what you did yesterday, and what you're doing today. Feels super micro.

More recently, D&I activism has taken engineering by storm. It's hard these days to focus on your job and role without getting dragged into this topic. Hiring based on physical traits (i.e. discrimination) is live and well (and encouraged/required) at tech companies, especially in engineering departments.

Lastly, the hiring practices in this field are complicated. Hiring is predominantly based on obscure algorithm and data structure problems, things that 99% of people don't care about in their day-to-day job. This makes finding new jobs a bit more difficult, because you actually have to allocate a good amount of time to learn these things again.

- How did you break that first-job barrier? I went to a bootcamp and did a lot of algorithm practice problems. The job I ended up getting was through a referral.

- What were you doing before this? excel heavy work

- Any tips for the rest of us? You should generally enjoy problem solving or you wont enjoy it that much.


- Why did you get into the field? What did you focus on at first?

It all started with playing games. When I was 11, I wanted to host my own CS 1.6 server to make some money by selling VIP. To advertise the offer, I wanted to customize the welcome message you get after connecting to a server. It's coded in HTML/CSS which I had known nothing about so I asked my ICT teacher, who happened to build websites as a side job at the time, if he could help me with that. He taught me the basics, pushed me in the right direction whenever I had a problem and showed me programming is a ton of fun. So from the welcome message, we moved onto building dynamic websites in PHP... Then games in C# using MonoGame. Then came my first professional jobs - CMSs, CRMs, first Java backends and so. And well, here I am. But to answer your question, I focused mainly on web first. I got into it because I was curious, I loved building things and I immensely enjoyed solving problems I had no idea how to approach.

- What are you doing at your job? Is it everything you dreamed of and more?

I'm working on a backend of a service that's used to send RCS marketing campaigns. It's very different than working on your own projects because the business side of things is more important than having a pretty codebase and using a shiny new technology plus most of the people I had a chance to work with were pretty mediocre, so it's definitely not ideal. I've always dreamed about having my own company so I hope that's going to happen one day (I'm making active steps towards this goal of mine).

- How did you break that first-job barrier?

Being 16, I was already ahead of lots of people who have even finished their degrees. So that plus the fact I didn't care about money, I was excited to work on some real projects :)

- What were you doing before this?

I was a kid haha.

- Any tips for the rest of us?

Plenty of my friends tried to learn SE by putting in lots of effort first but they never persisted. It takes months to start connecting the dots. It might be hard to not understand the whole picture, it might be hard to always have problems, it might be hard to always come across a new technology you had never heard of. But trust me, if you persist, it'll get better. Be consistent.


I taught myself programming when I was 14 on school computers during lunch breaks and after hours. I worked as a cleaner in order to buy my first laptop. By the time I went to university to study software engineering, I already knew how to code. I graduated after 5 years working as a part time software developer on the side. I've been coding for 16 years. I've been learning constantly for the first 14 years. The last 2 have been pretty easy.


I am mechanical engineer without any formal SW training. I see lots of people from different fields who are programming BUT they all have a degree in some field no matter how unrelated. From what I have seen a lot of companies will filter you out automatically if you don't have a college degree. This gets better with seniority but in my view it's something to consider.


I am currently unemployed (left my last job to pursue some personal projects, but looking for a job again now), but I was employed for 3 years before that.

I wrote about those exact questions in my personal blog, and as I am on the phone now, I will just link to it: https://rodrigohgpontes.github.io/


If you have a passion for writing code, I'll give you the best advice that I followed: Join an open source project, learn it, play with it, get skilled with it, submit patches. If you're good and the stars align, you'll be able to more than support yourself and your family. Last tip; always be learning, keep reading, stay on-top of your game!


Told an ad agency I could code, using PHP and MySQL. Graduated from internship, then moved on to Django and Python. Web dev. Then backend work for a well funded startup, then my own startup. Was making static websites for restaurants in 2000 for restaurants at 13 years old (lol). All self taught and loving my pay, freedom, work and colleagues.


100% self taught here with no formal education...

When I was about 13 we got the "Internet" (AOL). I quickly discovered these "Haxor Tools" for AOL. These apps would do stupid things in AOL like "IM Bombs", send ASCII art to chatrooms, etc. I wanted some specific features so I started looking into programming. My dad happened to have Visual Basic 2.0 (on something like 20 3.5inch floppies) so I loaded that up and started reading!

It was a slow start to understand how programming worked but once I reached a certain understanding and things started to click I was off and running. I built a few AOL "haxor tools" and then progressed into web sites and then got really into Linux and FreeBSD (and C/C++).

I was home-schooled from grade 6 through 12. With most of those years technically being "unschooled". I'm an INTP and was left to learn by myself. I believe having this personality type greatly helped me learn a lot and VERY quickly.

Fast forward a few years, I got a job at 18 as a tech support specialist for a local ISP.I built a few internal tools for the company but my job was tech support not programmer...

A year or so later I started studying to get my GED. Got the GED in a couple months and that was the end of my education. No middle school, high school, or college.

I then got a job at a medium sized software company doing tech support. I did that for 2 years then they promoted me into a junior developer role. I had created a handful of internal tools for the support department which is how I was noticed by the development team and therefore recruited.

From here on I've been in senior developer roles at a handful of companies (startups to Fortune 50 companies).

I currently work for an all remote consulting company, live in a low cost of living part of the country (USA), and make a low FAANG salary (maybe 5x the local wages).

I design, build, maintain, and support a lot of various sites, tools, and services. Is it everything I've dreamed of? Pretty much but watch out for burnout.

I believe my success can be attributed to being very good at self education and doing it quickly (see INTP definition). That coupled with "do the job you wish to have" and being noticed for it. I was in tech support but I also built tools for the company. This was noticed and rewarded.

I'm happy to answer any questions you might have.


One week of FORTRAN in 1965. Walked into an insurance company after graduating in 1969 (BA Math & Physics), applied for a programming job. They had me in an Assembler class the next week. Was writing production code two weeks later.

I still can't write code without bugs.


Love all of these responses. I'll add mine into the ring as well.

I came in by photojournalism -> photoshop -> graphic design -> web design through the 90's.

I was never really good as a designer. I was capable, but I didn't have that "real talent" that I could see in others. Instead, I was always interested in the technical aspects of design. I enjoyed color separation and complex printing jobs.

At around the same time, I realized I was getting tired of handing my designs over to the engineers who would slop them together. So I started dabbling with Macromedia Director (predecessor to Flash for making CD-ROMS [when that was a thing]), then flash, and then HTML and kept going farther and farther back in the stack. This was in the time of PERL and ASP, and I'd devour O'Riley books trying to learn as much as I possibly could. A book on regex. A book on data structors. Learning SQL.

I then had the fantastic opportunity to work with a group of people that stuck together through a series of companies (myself as the designer). At the last company, I was incredibly fortunate to have the architect take me under his wing and have daily master/apprentice style problems and reviews with me. Today you're writing a binary logger. Tomorrow a reader. Now an HTML parser. The architect was brutal, and I'd go home sometimes in tears... until I realized it wasn't about _me_. I had to check my ego at the door, and that this could be a dialogue if I was willing to participate and not to get defensive, and be OK unlearning some bad practices (To this day, I still think he's one of the most incredible humans on the planet).

Twenty years later, it's been an excellent career. I've built a lot of cool shit, and finally even had a decent exit. I'm in management now, but I can still find some "fingers on the keyboard" time here and there.

If I can give any advice:

- Never stop learning. Never stop asking questions.

- Don't get hung up on being a particular language specialist—it's fundamentals, fundamentals, fundamentals... everything else is just syntax.

- Interviews are going to suck sometimes, because there's some asshole in the loop that biases towards academia and thinks you're not worth their time... but don't let it get you down (pro-tip: you probably don't want to work there anyway).

- Celebrate your journey, don't shy from it, and be proud that you're doing this on your own; because it's a damned hard road sometimes.


I got into the field because (a) I'm naturally drawn to coding since playing with Logo and Mindstorms as a kid, (b) I like the feeling of making things. I wanted to be (among many other things) an inventor when I was a kid and this gives me that feeling and (c) the pay's not bad (even though I make a European dev salary, so the pay's quite modest relative to some here - my perk is a far more relaxed work environment).

I got started by working in tech support (no real job requirements besides being vaguely "good with computers") and then coding some tools that made my team more efficient. Then I told my managers that I could be a full-time force multiplier instead of a single-unit contributor (in other words, generating more value for the company) and they liked that idea and what I'd done so far so they helped me transition pretty quick. I continued working in support tools development for a couple of years and really enjoyed it.

There's a footnote here that I moved from the US to Europe because labor laws are more relaxed here so I was able to code for work for free on my own time without there being an issue, which I needed in order to show what I could do for the company to get that initial foot in the door for the support tools dev position. In the US, they told me they couldn't let me work for free (I suspect because of the Fair Labor Standards Act, but I never asked) so I requested and got a transfer.

Now I work on anti-cheat software for games. I angled for this because I wanted to get closer to security-related work without being exactly infosec, and there was a clear need for this at the company. It's a little more vanilla than I was expecting, but I have a ton of autonomy and voice in guiding my team's work, so I'm happy.

My advice for anyone interested in making software full-time is to start by doing whatever you can quickly get hired for. Then make software to make you better at doing that. Don't wait for someone to give you permission, because they won't (and this continues to be a rule even after you "make it" - continue jockeying for what you want and don't wait for permission unless there's no other way). If you show (with actual live code) that you're a force multiplier at your company's thing using code and they're in a position to hire someone for that work, then make your case for why you're that someone to whoever has the power to make it happen for you. It doesn't even have to matter if they don't hire SWEs. You can negotiate contract work if you have to. Everyone needs software even if they're not a software shop themselves.


As someone self taught, let me cut to the chase and say your number one problem is proving yourself in the professional world the first time. My advise assumes you have a different degree and you have some CS skills. Assuming this, you have to knock on ~100+ doors until one opens. I’m not joking about ~100+ doors. You will be ignored, rejected and laughed at - repeatedly. You need to search exclusively in your local market with a local address on your resume. Don’t use the major bot controlled job sites - check prospective employer sites directly. Check for entry level positions - or even internships - that’s your best path. Manual QA tester. Project analyst. End user phone support. Third shift operations. I’m not joking: you have to prove it. Once a door opens, it may not be the title you want, it may not be the technology you want, it may not be the boss you want, it may not be the benefits you want, and it definitely won’t be the pay you want. It may be unpaid. Don’t negotiate. Your one and only criteria should be: will this role allow me to prove myself. Will this opportunity grant access to greater challenges, future roles, broader networks. If so, take it! Then work twice as hard as the next person and prove it!

My advice surely sounds cynical but remember the hiring pipeline is populated 98% by non-technical folks whose assessment of your skills relies exclusively on a degree. That’s the system.

tl;dr if you are self-taught, learning CS is actually the easy part. Getting your foot in the door is the hardest.


In this context is self-taught == no degree ?


I had dabbled in programming my whole life, starting with C64 BASIC. In high school learned some C and C++, but once the internet became more accessible moved onto web based languages. After graduating high school, mostly due to having no guidance what so ever, I never put together in my head that I could pursue programming as a legitimate career, walking around with a 16 inch green mohawk pretty much guaranteed that I was labeled a lost cause.

I did a short stint in the Army, ended up in a minor touring punk band till about my mid-20's. Decided that I wanted to pursue something different after realizing the band was a one way ticket to a dead end. I got the brilliant idea to pursue photojournalism. My timing was impeccable. As I was finishing the "great newspaper crash" had started and after working freelance for a few years I started a small photographic advertising firm. But... during all this I was still coding. This was in the early days of what was being called "New Media." A lot of the places I was working with, the older journalists were not interested in how to use the web for better story telling. I didn't hesitate to get my hands dirty creating web sites for stories, working with flash to create interactive pieces, etc.

When I started the advertising firm, a client asked me if I could create a website for their business. Never being one to pass on the chance to make a few bucks, I confidently said "Yes" and proceeded to learn PHP and WordPress as fast as possible.

Around this time I also took the plunge and got married, which ended rather quickly in divorce. I decided to give up my rights to anything we accumulated during our marriage and was living on my friend's couch just trying to get a fresh start. A friend told me about a company his partner worked for that was looking for a developer. With her reference and the pressure of being homeless and hungry, I was able to land a gig as the companies "Web Master" (yeah, they were still using that title lol). The company was sold and the purchaser had their own team and cut the local team to the bones so I started freelancing.

My tips? - Most developers and SWEs are just as clueless as you even if they have a degree, don't be intimidated. - Realize that as a self-learner, you have an advantage of knowing how to learn quickly and efficiently. - Don't make money a priority, salaries for the most part are a side effect if you love what you do. - Realize you need a break sometimes, burn out is real and will kick your behind if left unchecked (as my own failure of my first tip, I always am dealing with imposter syndrome which leads me to constantly spending even my off time trying to learn more so that my co-workers don't ever say anything negative about me being self-taught) - Ignore trends and just follow what you enjoy doing or this will quickly become "work". In my own recent experience, I've been feeling the pressure about moving into ML/AI. After a nice long think these last few months as I end my first decade in this field I realized I have no interest in it, I just like building software. Coming to terms with that has done wonders in my mental state and brought a lot of inner peace.

Eventually a friend told me about a gig as a developer with an F500 energy company and helped me get my foot in the door. Worked my way up from a junior SWE to a lead position. I've now moved a few times and am now working in a financial company that is a major player in the world economy. Not because I think it will change much other than making me a better engineer, I've recently returned to school to get my CS degree and am preparing for another pivot into other areas of development once I'm done.

All in all, it wasn't the life track I expected. What I have learned in all this is I love doing what I do. As others have said I think my enthusiasm and passion have taken me a lot farther than the typical "coder bro" that comes out of college with a CS degree because they heard they can make big money quickly.


HUA. I feel you on that imposter syndrome. Thanks for your response - I bet that punk band was a barrel of fun.


My tips should be the end of this post, for some reason the formatting is getting all messed up.


I am projected to break 6 figures in revenue by December as an independent consultant.

I was interested in web design as a kid. Built my first website when I was 11. Back then, there was no facebook or myspace — those wouldn’t be created until 2 years before I learned the basics of HTML and CSS. There really wasn’t a well-fleshed our career path in the web either — e-commerce hadn’t really blown up back then either. So I was just genuinely interested in the ability to publish for the web.

I learned by going to the library and borrowing books that teach you by you following along. But still, it was mostly just HTML and CSS, no JS or any real programming yet.

It wouldn’t be until college that I’d pick up programming. Not that I majored in CS or SWE or anything — I majored in Biological Science and Studio Art, wanting you become a medical illustrator.

Nobody that I was around ever told me that “hey, you should check out CS”. It was always presented as this complicated and difficult subject. Something that was for others, but not for me. Much harder than Biology =p (they were wrong, lol, Biology is harder IMO, but I am genuinely interested in the topic and continue to learn more about it too)

During college I got involved in organizations outside of the classroom, and this was right around the time when facebook was a few years old and social media was emerging as a tool that can be used to market a cause and actually raise funds. The first viral video campaign came out this year, for the Ora Brush. So I ended up making a website for one of our events, linking it with google payments etc, promoting it on facebook via a video shared among local groups, and it registered people, kind of like what eventbrite does now. We were able to raise a couple thousand dollars the first year, and ~$20K total by junior year. So that experience exposed me to some of the cool things I could do with my web skills and I focused more intensively on learning to program more.

That landed me my first software engineering internship my Junior year, where although I had no experience with the backend programming language that they used I was able to pick it up and ship a finished admin client by the end of the internship. I was offered a full-time position as a software engineer at the completion of the internship, although I did not have a CS / SWE degree. However, one thing that I discovered about myself during the internship was that working a desk job all day made me very depressed. Aside from QA sessions and design briefings with management I hardly interacted with people during my internship, due to the nature of the engineering job. And it felt like taking the job would be me sitting behind a desk in front of a computer all day for the rest of my life, not really interacting with many people... and for some reason that was very depressing and unsettling to me, personally. So instead of seeking employment I decided to go the freelance / consultant route, and try to build my own clientele.

It took ~4 years to actually get any real consulting traction though. Partly due to some false starts in startup land... So I’m not sure if I would recommend it. I think for many people, the happy ending would have been getting a full time offer before graduating college. And the advice there for someone in their early 20’s would just be to network, get involved in things, build a portfolio, and seek out internships. An internship is basically an extended interview with a potential full time job offer on the other end... But unfortunately my particulars made that somehow undesirable, and so I decided to go the hard way.

Today I consult with business owners and partner with design agencies, helping businesses in e-commerce bring their business requirements to life. Sometimes it’s just giving general advice on how to build stuff, what they should be considering during the design process, and the rest of the time it’s programming. It’s all remote. Although many people have given remote work a thumbs down during the pandemic, I’m happy with the flexibility.


Why did you get into the field? What did you focus on at first?

I was 11, my dad used FORTRAN at work to build economic simulations, and walked me through some basic programming. This was during the ~5 years that I was taking amphetamine or methylphenidate daily for ADHD, which I mention because I'm pretty confident that it's a big part of the explanation for why I spent then next 4 years completely obsessed with programming. When I was 15 or so I stopped taking the drugs and switched from actually programming to mostly reading about the craft. At first I focused on full stack web development, and gradually acquired an interest in systems programming and Linux sysadmin stuff.

What are you doing at your job? Is it everything you dreamed of and more?

Work for FAANG developing and operating backend microservices which do little more than shuttle data around. This is my first job out of college, been doing it for a year, don't like it much at all. Looking to transition to a role which involves developing more interesting applications and has less operational burden. I'm cautious about switching roles amid this pandemic though.

How did you break that first-job barrier?

I got a math BA in college, though that wasn't my primary academic focus. That degree is enough to get employers who require a relevant degree to not immediately discard your resume. Beyond that, luck. Sent my resume to a FAANG new grad hiring pipeline, and got an offer. I got some relevant work experience in college, first working quarter-time for a startup writing node js libraries, then working for my university's CS department as a sysadmin. These jobs were not hard to get, probably because of how woefully uncompetitive they were on compensation, which I was OK with while I was a student.

What were you doing before this?

College, studying math and philosophy. My parents didn't believe that I could get a good SWE job without a degree and were willing to pay for my education, so I accepted their generosity, and I'm glad I did despite the opportunity cost. I'm regularly tempted to pursue a career in academic philosophy despite the myriad drawbacks.

Any tips for the rest of us?

If you're free of financial obligations and self taught, you have the option of jumping straight into your professional career and getting a head-start on building wealth, which might well be the right option for you. But you're also in a position where you have skills that you can rely on as a backup while you experiment with other options for your future. Working on other people's projects is not nearly as fun as working on your own, and if you managed to acquire SWE skills on your own, you can probably learn other skills as well and broaden your horizons.


- Why did you get into the field? What did you focus on at first?

I really liked video games. I remember some skills I learned as a very young child and teenager to do things like play Warcraft 3 online, install cracked versions of games, play on WoW private servers, host my own Minecraft server...

So then after being an aimless teenager I went to the equivalent of a community college to do "IT" at 20 years old. I learned things like windows/linux sysadmin, networking, printer management..

I never ended up finishing that degree though.

- What are you doing at your job? Is it everything you dreamed of and more?

I am basically an SRE. I was doing sysadmin for my company for about 2.5 years but put my foot down and decided that having work thrown over the fence to me by devs was not a good long term career plan.

Now I've been doing software development, but it's not user facing feature work. It's been a lot of improving application monitoring/debuggability/operability (distinct from usability).

It's not really my dream job, I've sort of figured out this company by now and I'd like to get a more difficult job.

- How did you break that first-job barrier?

I made personal friends with one of my teachers who basically coached me through how to get past the very difficult interview process in IT. Then I applied to internships on my university job board and got lucky eventually.

My boss later admitted to me that I wasn't hired because I had the best credentials, but mostly because I had a wide skill set and he had a gut feeling about my work ethic.

- What were you doing before this?

I worked at a moving company and played an obscene amount of Starcraft 2.

- Any tips for the rest of us?

Trying to get into IT is easier than trying to become a developer. You can start in help desk and work your way up, there are certifications for the specific technologies you will be working on (doing Cisco networking? get CCNA, doing cloud? Get the AWS solutions architect).

Once you get good at IT related skills, you'll actually pick up a lot of key software development skills without even realizing it. There is an embarrassing amount of time I have spent explaining things about git, SSH keys, layer 3 networking, HTTP, TLS... to very smart and qualified developers making triple my salary.

I did horrible end user support for my first little while. It's OK when you start out to be explaining to people how to connect to the VPN because they can't read a wiki page with screenshots, just make sure that you realize the job is a stepping stone for you to continue building skills. Once you get the job you cannot rest on your laurels.


I’m a self software developer and have held professional positions in software development, architecture, and management at various small and mid sized startups.

I started by teaching myself how to program Visual Basic when I was 13 years old, which was around 24 years ago. Back then I was on AOL and hackers made “progz” which added functionality on top of the platform. I was curious how they did made them and wanted to make one myself. So my father took me to compusa to talk to someone about programming. I left with a cd to install Visual Basic and a learn vb in 24 hours book. From there I spent a good portion of my childhood learning various languages, platforms, philosophies, and frameworks.

The first money I made was building ASP classic websites for local businesses when I was around 17. In college I started as a CS major but at the time the curriculum hadn’t caught up to the web and I wasn’t interested in what they were teaching. I was always a pretty entrepreneurial, so I transferred to the business program.

I try not to have regrets, but in hindsight I wish I followed through with CS. It took me many years and a large investment of time to build the required fundamentals I think every software engineer should have. Also, all that stuff they were teaching later become interesting to me.

After I graduated I wanted to be a product manager. But no one would hire me and they kept pushing me towards software development. I decided if I was going to write software for a living I had to go work somewhere fun. So my first job was at CollegeHumor as a software engineer. It was the perfect transition from college to the real world. We worked hard and we had a tremendous amount of fun too.

Early in my career I had a chance to go into management and have mostly stayed in management since. I still program (outside the critical path), contribute to architecture, and try to keep my skills up to date and sharp.

I’ve joined various companies early enough where I’ve been the first engineering hire. I’ve had the chance to develop everything from scratch and then build a team to hand it off to. I’ve also joined mid stage startups and helped grow the team and tech.

I love what I do.

My advice...

- Do it because you love it. The best engineers I’ve worked with also happen to be the most passionate. They are curious and never stop learning.

- Learn CS fundamentals and how the things you use work under the hood

- Learn to create value for a business. Unless you are in academia or research you are being paid to create value for the business. I can’t believe how many engineers miss this point. This means that you should forget the pursuit of perfection and learn to balance good enough and technical debt.

- Learn how to speak to software people and business people. You’ll be more valuable if you can translate and be the bridge to both sides.

- Experiment with lots of different languages, philosophies, and paradigms. You’ll find the ones you like and take some lessons away from all of them.

- Dont get caught up chasing the next hot thing (language, framework, database, etc). At the same time don’t become obsolete either.

- Learn SQL. Really learn it. I’m not talking about the little bit to make your ORM work. A database is just another service you interact with. You should know what value it brings and how to interact with it.

- Money is good. Most people in this perfession seem to be doing okay. But don’t do it just for the money.

- If you plan to join a startup learn about Stock options and how they work. It’s amazing how many engineers work at startups and have no idea about their options and how it fits in as part of their comp package.


Self trained SWE here. AP CS in HS, 1 CS class in college. Two degrees in archaeology which I studied and worked in on three continents (and an island).

- Why did you get into the field? What did you focus on at first?

It was kind of an accident. Archaeology is inherently destructive, so data management is pretty important. I'd always been on the data and mapping side. I wound up in a data production/management role at a government agency. We had a web mapping product delivered that didn't do what we needed, and it landed on my desk to figure out if we could use it to improve our internal workflows... and so I fiddled and read, and fiddled and watched Doug Crockford's videos, and fiddled and went to see John Resig speak at a meetup... and along the way released multiple little (and eventually big) tools to help my colleagues get stuff done. 3 years later I was speaking at conferences about the technical side of what we were doing, not the archaeological side. Asking some good questions to a co-panelist in the municipal SaaS space led to more discussions and a job offer.

- What are you doing at your job? Is it everything you dreamed of and more?

I'm an engineering team lead at a company that handles a lot of traffic, doing everything from new product development, bug fixes, R&D, and more. It's fun and interesting. Is it what I dreamed of? Not at all. I didn't set out seeking this, just followed the opportunities as they happened. I do miss working outside and digging in the dirt though, but definitely enjoy the stability, lack of poison ivy, salary and benefits.

- How did you break that first-job barrier?

There were two barriers, neither of which I set out to break.... the first barrier was "how did I get the Archaeology job to let me spend time learning and fiddling", while the second barrier was "how did I get that first job where they actually hired me to do software developent". To the first barrier, I built tools. Tools beget more tools, beget absurd amounts of time saved, which led to bosses willing to let me say "I have an idea, I know its possible, I'm sure I can build a "good enough" version, I just need time to figure it out."

To the second barrier, I asked questions, I answered questions, I went to lectures and was lucky.

- What were you doing before this?

Archaeology. Shovel Bum. GIS.

- Any tips for the rest of us?

The things I'm most proud of that I've built over the last 15 years are tools that let other people do more, be more productive, answer questions, see data, better help their citizens, etc. If you're in any sort of knowledge/data intensive/adjacent role, almost certainly there are data systems that could be improved, optimized, etc. Routine tasks that could be partially automated. Listen to the workflows, learn the pain points, and find a way to improve them.


I think I was probably inspired because I knew my dad was a programmer. But also we had computers in the house when I was a child and if I remember correctly they seemed like the most interesting toys available.

I was lucky because we had an Ohio Scientific and not long after a Vic-20 and Color Computer 2 and C64 and Texas Instruments and of course various PCs. I don't actually remember the details of when those things arrived very well.

But to me computers were like toys that you could play with infinitely because they could be programmed to do anything. And also they seemed very complex so that meant there was always something interesting to learn about them or explore.

I highly recommend this book for kids "Getting Started With Extended Color Basic" https://www.amazon.com/Getting-Started-Extended-Color-Basic/...

I followed along with books like that which were basically tutorials. And I tweaked the BASIC programs to try to create my own variations.

By doing simple experiments I was able to teach myself the basics of programming (in BASIC) before I was say 9 years old. I remember doing more actual programs when we had a PC. I spent many hours in GW-BASIC and remember creating a simple Space Invaders-like game among other things.

Also around middle school age I was getting into Turbo Pascal and starting to teach myself object-oriented programming. I recommend the book Turbo Pascal Disk Tutor by Werner Fiebel which I had a late edition.

When I was around maybe 8th or 9th grade we had started learning algebra and I also my dad had bought this little second-hand 1960s math/engineering reference handbook. I used the equations in there for rotation to create a very simple system for displaying 3D wireframes using Turbo Pascal. And made it into a really basic type of 3D modeler.

In high school I got a later edition of C++ How to Program by Deitel & Deitel.

Also my mom was really into reading and brought home a ton of science fiction books many of which I read. So I think that science fiction also inspired me a bit.

College was hard for me, aside from the programming classes which were easy, and some basic courses that mainly just tested literacy. And I was not really able to make and keep friends so I ended dropping out. I actually drove across the country and moved to New York where I hoped I would be able to get a job doing trading in C++ or something. I feel like I was close to scoring a job with a few interviews but ran out of money and got into data entry and then legal word processing for a few years. I remember building a workflow/job tracking system for one of the offices I was in using Access and VBA and then failing to sell it to the programming department head who felt everything needed to be coded in C++.

But anyway it was quite difficult for me to get a career in programming. I put a lot of time into things like Rent-A-Coder and eventually got a temp job that was semi-technical but not quite programming. I created a system to help automatically compare multicolumn PDFs which was one of the primary jobs in that department. That helped me land an actual programming contract.

To be honest, I think my lack of a degree or charisma and also a few health problems has all hurt me a bit and I have not really flourished as a computer programmer aside from a few more lucrative contracts.

The last several years I have focused on work that I can do remotely and that isn't always the highest paying thing. I have also been focusing more and more on startups and as much as possible my own startups or side projects.

Right now I work for a tiny startup for little money and live somewhere cheap. It is at least not a very stressful or demanding job and it leaves me some energy and time for side projects. Right now I am focusing on learning about ML/AI/ a little robotics with the dream of someday building a household robot that can do dishes or even cook.


Kind of depends how you define self-taught to be honest. Though I went through university, I do consider myself more self-taught more than anything: I got into programming when I was 10. By the time I got to university, I already knew 4 or 5 programming languages and even after that I kept learning more. And at this point I'm using technologies which were far from conception during my years in university, so again - largely self taught. With that in mind:

> Why did you get into the field? What did you focus on at first?

As I said, I was 10. At the time Windows was the only choice on our family computer so I started with a few batch scripts. At the time someone started publishing a small local magazine called "hacker" which iirc, was coming out once every two weeks and cost what would be the equivalent of 50 cents. And in it there were a lot of mentions of C++. So when my dumb 10-year-old ass saw a C++ book on the window of a book store right after the holidays, with some granny-cash in my pocket, I picked it up. As for the dumb 10-year-old ass - everything was going smooth as hell until I got to the section where namespaces were explored in more detail - I was completely unprepared for that. At the time I had this really cool ICT teacher at school who was aware I was ahead of most of my classmates so he let me do whatever I wanted, installed a C++ compiler when he saw the book on the computer I was using and it was game on from that point on.

> What are you doing at your job? Is it everything you dreamed of and more?

Lead developer, playing devil's advocate to be honest. Up until very recently (think 1-2 months ago) it was - awesome team, decent work-life balance, decent paycheck. But lately politics are catching up so I'm looking out the door at this point.

> How did you break that first-job barrier?

Pure coincidence. A neighbor at the time who had a real estate agency and infrastructure from hell learned about what I was into and studying so she offered me a job.

> What were you doing before this?

Not too much, I had a few small jobs to earn some pocket money, from driving laundry to copying pirated cd's (we are talking about the dial-up era where 1.38kbps was the speed of light).

> Any tips for the rest of us?

Don't sweat it. Pay close attention to what is happening and what people are developing and dig into it. Sooner or later a point comes where your experience will have immensely more weight than your education. I've interviewed dozens of people and when I look at their CV, I'm 1000000 times more interested in what they've been working on. Triple that if they have a public github account, even if there's one or two tiny projects in them. I'll spend hours digging through the code and commits just to get an idea of how this person ticks.


what is sWe?


SoftWare Engineer


> Why did you get into the field? What did you focus on at first?

I had stumbled into computers / programming probably 11/12. I've always been interested in things that I "didn't get" or seemed like "magic" and so when gamed were dumping textfiles full of what seemed like cryptic texts to my desktop I started digging in and found out there were crashlogs with stacktraces. Kinda just went from there. The second sentence still holds true today, sadly less and less feels like magic. Never really focused on anything which ended up really hurting me. I hace a lot of surface level knowledge about a ton of both general and niche stuff and have worked with things most people my age probably haven't heard of, but I'm not particularly good at anything as a result.

> What are you doing at your job? Is it everything you dreamed of and more?

Enterprise stuff for a non-tech F500. Not really excited by my careers at this point nor do really care for the industry. I've considered leaving, but the cost is too high. I still sorta enjoy programming though, and have been trying to get back into more the past year after burning out once.

> How did you break that first-job barrier?

Honestly? A lot of mass applying and twisting the wording on some former freelance work I'd done to sound more interesting than it really was. In retrospect I felt hopeless at the time, but it only took about 3 months.

> What were you doing before this?

Nothing really, I was out of highschool kinda stuck in a depressive slump. I had tried a few other things that didn't work out and was working a near-minimum wage job in a shitty area. Eventually I just said fuck it, I have a skill so let me put it to use.

> Any tips for the rest of us?

Hmm, I'm not sure. I guess if you can afford it, try to get your resume done professionally. I did it once and it was much better both visually and content wise than anything I'd been able to cough up myself.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: