15
39 Comments

Self-taught devs, what challenges did you overcome on your way to success?

I’m curious what challenges folks who have become self-taught software developer overcame?

What did success look like for you? Was it a salary mark? Just landing a job?

What tools helped you along the way?

Answers to any of all questions are helpful. Would love to hear your journey.

Cheers,

  1. 15

    Taught myself programming back when I was ~13, sold my first software around ~15 years old and got my first remote job at 17.

    When I first started programming I wasn’t looking to create a career out of it or get paid at all.

    My version of success back then was to create tools that I wanted to have.

    And I think that is very important for your success as a developer, is to not tie it to a dollar amount.

    If you want to be successful at development (or anything for that matter) you need to enjoy doing it.

    Here is the interesting part btw... I think most programmers will agree with me...

    When you are developing something for yourself vs for a paying client things are very different.

    You can start hating programming depending on the client and the project you are working on, no matter how much you are getting paid for it.

    Anyway to keep things short and simple, my advice:

    1. You must love creating and programming, not do it because of the money

    2. Build stuff for yourself (or others) to learn, it’s the best way to learn

    3. Your biggest challenge in becoming “successful” with programming is going to be dealing with people and project management

    The technical skills you will always learn and become better at

    Dealing with clients, co-workers and managing your time and making sure you deliver — those are the real challenges that will either make you or break you

    All the best!

    1. 2

      Exactly the same journey for me, and I completely agree. You have to love it.

    2. 2

      Impressive story! I wasn’t that disciplined at 13 :)

      And true—technical stuff is often easier than the people side... in your own company or clients. Computers are predictable and do what you tell them :)

    3. 2

      What an awesome insight! Would love to hear more from you, giving you a follow for sure!

  2. 4

    Hello there,

    I started around 13-14 (if I remember right, it's been a while): I was playing video games and tinkering with them, eventually coding seemed like the way forward. If I remember correctly I started with an Ultima Online server emulator.

    I eventually got my first job offer at 17, on the first day of uni, which made me drop out of uni. Then I moved between jobs and countries every 18-24 months, and eventually did a bit more architecture and management (late 20s) then CTO roles (early 30s) in large companies.

    I'm 38 now and on Indie Hacker, i.e. I'm not managing anyone and starting something from scratch :-).

    I don't think it's really been challenging at any point, and I don't generally think about success, but I tried to think a little bit to write this post, hopefully these could be relevant to you.

    Here goes random ramblings:

    The Unusual Profile

    In some companies - the larger they get the worse, usually - they have trouble classifying the self-taught type of profile because it doesn't fit in their boxes.

    An interview can quickly get to "you are 23, you are supposed to be fresh out of college, and yet you tell me you've been working for 5 years already and you've been coding for 10? Well you don't have a college degree so...".

    Even if you get hired, it can still get in the way of your salary because you don't fit in the salary grids (again, big companies).

    It never prevented me from getting a job, but it sometimes raised questions during interviews, back in my early 20's.

    As you get older and get more experience, they don't really bother with that anymore. I also think recruitment evolved and the self-taught profile is less weird these days.

    It can even be seen as a plus, since it means you can self-manage and you should be good at solving problems on your own.

    There's More Than Coding

    Being self-taught often means doing things entirely on your own (although I suppose you could be self-taught participating in some open source project these days).

    Working with others requires an entirely different set of skills, and I've seen very good developers who couldn't work in a team, just like I've seen very average developers who were really good and improved the team as a whole, not necessarily on the coding front.

    This becomes more significant as you get older as well, because in many places, there is no path forward in development past your early 30's. Again, this one is improving, but it's still fairly common for the only way up to be doing management.

    Now management is also another set of skills - which, I think, can be both very rewarding and at times very stressful - but it may not be something you are interested in, especially considering the more you manage, the less time you spend on coding, which I assume is what got you into self-teaching development in the first place.

    Again, this is not as bad as it used to be, and many companies now start having a "technical expertise" path, parallel to the management path. So you can still get recognition for the extra experience/skills you have, and get paid for them.

    Recognizing Success

    In the first paragraphs I said I didn't think much about success, but I think I can still "analyze" it if I try to think about it.

    First, I think being successful means that when you get up in the morning, you're looking forward to getting started with your job duties. That can be the product you're working on, the tech you're working with, the people you are working with, or even because they have free coffee (not judging, it's your life, whatever makes you happy).

    Another way I think you can measure success is in the way other people rely on you. If people think you are knowledgeable and dependable, they will seek your help, ask you if what they are doing it right, and give you responsibilities because they trust you. This kind of behavior can be very rewarding (just don't let get abusive, i.e. people dumping their work on you).

    Finally, and that's something I've been told by a management coach once: just look at what you've achieved, all the way you've come from when you started, because in the end, you don't have to prove anything to anyone but to yourself.

    This last one can be quite useful in places where there can be challenges with teammates or your hierarchy - both up and down - because not everyone is a good person, and not everyone will recognize your worth. But that's fine, as long as you know your own worth.

    Quitting is not Failing

    It can be hard to move forward, for many reasons: you know what you're leaving but not where you are going (or not as well anyway).

    But I think there are times when it's important to learn to let go:

    • you are no longer happy with your job (honestly there are tons of developer jobs, so you will find another one just fine)
    • you are no longer learning anything/improving
    • you are only staying there because it pays well

    Now I'm not saying you should just barge in your boss' office whenever there is something slightly annoying to tell him you quit, but I know people who hate their job, have been staying there for over 20 years, just because they don't want to face the unknown or because their salary could drop 5% by switching job.

    Salary is not Success

    So, yes, nothing about a salary in there. I think developer salaries are fairly high compared to other jobs. Sure, with an even higher salary, you get a bigger car, a bigger house, etc. But then what? :-)

    I've had what I consider to be extremely high salaries (in the 7 digits) at some point in my career, yet those jobs were far from the more fulfilling ones.

    Nor did they change anything about my lifestyle: I still live in the same kind of apartment, I still don't own a car, I don't buy much of anything apart from groceries, and it doesn't feel like I'm missing out on anything.

    Most of the people I know who have somewhat high (6-digit) salaries just invest it in real estate or stock, so I guess it could provide a bit of extra security, but it won't change your life. And they are the same people I mentioned who hate their job.

    Now if your goal is to have a yacht and live in a 40-room mansion, sure, go for the salary ;-).

    Well, that's about it. Can't think of any particular tool that helped along the way, sorry about that...

    1. 1

      Thank you, Raziel. Mature thoughts from a wise professional. I'm the one for the last 15 years trapped by a good salary (as a remote contractor), but finally released and feeling now quite behind of everything. In my forties I face quite a crisis deciding what to do next: follow the same path or just to shift a carrier. Where do you think old programmers go ;) ?

      1. 1

        I like to think old programmers go do whatever it was they always wanted to do :-).

        However, being in your forties is far from being old.

        I've seen people move on to completely different paths for sure, many of which had no direct connection to programming: starting a restaurant, hotel or shop business, doing coaching, or even running a small farm.

        I've also seen many people continue with similar roles, or in similar industries. As mentioned in my earlier post, it's easier these days to build a career on expertise rather than management. But management - projects or people (or both) - is also a good option.

        At the end of the day, I don't think what other people do or where they go really matters all that much. You could certainly use this new situation as an opportunity to reflect on:

        • what did those past 15 years bring you (I know you say you were trapped, but that does not mean everything was bad and I'm sure you can find many good things in that time frame)
        • what do you want the next 15 years to bring you

        Now is a good time to figure what you want and give it a try :-).

        PS: I'm not sure I am interpreting your "feeling quite behind" line properly, but if it means feeling like you're behind from a technical point of view, having as much experience as you have (even with "old" tech) means it will be that much easier for you to learn new things and quickly get up to date

    2. 1

      Wow, thanks for putting this much detail Raziel. As a young engineer in this field (only 4 years), this is extremely fulfilling to read, and hear from my seniors. Biggest lesson is salary is not success. I'll keep that in mind.

  3. 4

    Dont be shy, I'd call myself Software Engineer even tho I'm self-taught (there is no real difference from developer to engineer really, it' just a title).

    Started with 9 years in IT, just playing around breaking my computer and formatting it, in these days I had windows 95, I loved to break the computer, and reinstall it, these days formatting was kinda harder than nowadays. (Breaking stuff was my passion)

    I also was influenced a lot by my mother, She was softwar engineers and they had a business in Germany, they had like 50 computers at home and building websites and stuff at the .com bubble.

    With 12 years I got introduced to programming (by playing video games, fun fact), started to play around and do stuff, started working with 20, now i'm 26, a lot of self taught experience and also work experience.

    I didn't liked to only be on the high level stuff only, I learned a little bit of assembly, computer internals, filesystems, some math here and there, game emulators, just like going to university because I enjoyed it.

    So actually, it was pretty easy getting my first job actually, I told them my story, I told them what project I've been working on, I showed one of my projects in live of front of them because they were curios, and after 2 days I got a big YES.

    And after getting my first job the rest was pretty easy, I stayed 2 years on the first company, 1 year at another (they go barnkrupt) and now I'm on my third, every job switch with almos 40-50% salary increase.

    I'm getting paid the same amount as my colleagues who have a degree, this doesnt matter much actually once you have real work experience, so no problem with that. But this really depends on your skill to sell your self and negotiating.

    My skillset:
    Well, I dont care about the language nor the framework, I abstract myself from that, I just think in problems and solutions, the language/frameworks are just tools to accomplish that. I started with PHP, ended with working with Java, got a lot of exposure in other languages and frameworks, python, nodejs, ruby, some C... And on my personal projects I just use the best tool to do the work,

  4. 4

    Well,I am still learning front end and UI design.

    The most helpful source has been Brad Traversy from Traversy Media and Gary Simon from Coursetro, The Future for design is legit.

    With what they teach on YouTube for free is enough...just to jumpstart it.

    Before this I was on Treehouse, I did full-stack Js course, but I still don't know half of it...

    So I decides to start my side project and learn while I build stuff...

    For me success is that users, fellow developers, designers,etc.,...finds value on your work.

    As an example, my side project is used by hundreds everyday, I get DM, emails,...telling me they really like it. Of course, emails saying they don't like a feature too.
    The site has been featured in popular places too..

    I would say recognition is success for me, the economical part is a secondary thing.
    I have seen products offering zero value, and charge you for it.

    This, makes feel like I achieved some kind of success, also after posting the project on Reddit it went viral to first page, so it brought interest to hire me and offer me great job opportunities.

    We are always going to be learning more and more new technologies, at the end of the day we all become self taught...

    Have a great day.

    1. 1

      Thanks for the reply! Really cool project and well designed.

      I’m glad you’ve found success with that :)

      1. 1

        Thanks mate ! That means a lot.

    2. 1

      You might want to check your scroll behaviour, on my mac its scrolling incredibly slow (like it takes 2 minutes to scroll through the whole page). Just FYI.

      1. 2

        For real? I will have a look soon as I get home. Thank you so much.

      2. 1

        I have been testing it and I had no issues smooth as always.

    3. 1

      Just wanted to say that I love your project too :)

      1. 1

        How kind ! Thanks a lot !

  5. 4

    I think for me it was joining a large development team and proving to myself that I could keep up and contribute. Always loved writing code but doing so in a fast paced environment was a challenge + learning how to read and work within large complex codebases was difficult.

    Now I lead teams, and I will always remember what that was like. The most important thing I had to learn was that relationships are important and learning from others (ex active listening) is a skill in itself that has to be mastered.

    1. 1

      Brilliant. Good reminders about keeping focused on the people you’re working with :)

  6. 3

    My definition of success was to be able to throw up a SaaS framework/shell in a day. Obviously adding the extra moving parts like logins, algorythms, and other CRUD operations would add a few days.

    Secondly I wanted to understand everything under the hood and not just cut and paste framework code.

    Once I got to that point I just started to make apps for local businesses (aka gave away free). As I gained more business experience I'd make (aka sell) web based applications for businesses in my community.

    At the end of the day it was about self sufficciency after a layoff. So far so good.

    1. 1

      @frederickjohnson, sweet! Thanks for the reply!

      Secondly I wanted to understand everything under the hood and not just cut and paste framework code.

      That's super critical. I totally agree. The folks who do that over and over are the best devs.

      Have you met success?

      (Also, you're local to me! I'm in Arlington. Giving you a follow. :) ).

      1. 1

        Hello neighbor. Definately met success. One professional example is that I'm able to contribute and add value to my (day job) team. The faster we deliver or 'fix things' the more return business we get and the faster we get paid.

        Now that I've been applying this to my side SaaS projects I can definitely see some positive side effects. For example I'm able to pivot faster or implement 'fancy' 3rd party libraries without having to study it for months like I used to.

      2. 1

        This comment was deleted 4 years ago.

  7. 1

    I taught myself programming online in early high school, mostly just surface-level stuff with C++, Java, and playing with assembler. During my senior year of high school I took a year-long, half-day Cisco focused "Computer Systems Networking" course at a vocational school. Within a month of graduating high school, I got a job in software support/systems administration/customer service management at a local startup. Over the next twelve years, I worked up from that original support role to lead software architect. Dabbling in product management, pre-sales engineering, M&A, and a whole bunch of other things along the way.

    For me, all along I would say the biggest challenge was the unknown unknowns. Meaning all of the things that were gaps in my knowledge and experience that I didn't even know about but someone with a traditional CS degree might totally take for granted. I had to always be searching out for the gaps in my knowledge base because the trick of learning new things is that you have to actually know that they're out there waiting to be learned.

    I view success as an always-moving target. I realize it's incredibly cliche, but for me, success really is the journey not the destination. Success is being able to positively affirm do I know more today than I did last month, have I continued to grow and develop. Even more importantly have the other people around me grown and developed because of me and my contributions. If the people I work with, and the work we do, are in a better place today compared to a year ago than they would have been without me then I consider that success.

    As far as tools that have helped me in my journey. I think more than anything else it's been a specific attitude. Consider everyone you interact with to be a mentor to you. There is something that you can learn from some every day whether they're senior, your peer, or more junior than you. This approach will especially benefit you as you grow and there are fewer people around you who in every way more knowledgable and experienced than you. Early in your journey, it's easy to find people who are just fountains of knowledge and latch on to them because everything they have to offer is new to you. You'll need to learn how to diversify and learn a little bit from a lot of places so always be keep yourself open to where new knowledge will come from.

    Never forget to be an open and welcoming source of knowledge for others as well.

  8. 1

    I've decided to become a developer at 25. I've been always interested in computers, but I'm definitely not one those wiz kids who started programing at 5, so when I was deciding where to go to college, for some reason I chose economics. Only after I started PhD in economics I realized that I actually don't really like economics that much :)
    So I thought, f* it, I'm gonna quit, take some months off and learn myself how to code (definitely recommend freecodecamp.com).
    And after few months I got to a decent level and got my first developer job - I guess that was the success for me - that I made it and I am a real developer now.
    I was also lucky that I was living in a country with big shortage of developers, so not having CS degree or any experience didn't really matter that much and finding a job wasn't actually that difficult.

  9. 1

    Career switcher here! I decided to become a developer when I was 23.

    For me, success was landing a job with the title "developer". The hardest part was the discipline it takes to sit down and actually teach myself how to code. Doing tutorials, exercises, practicing... all while working 40hrs a week at a soul sucking job and still trying to maintain a social life. So doing the work was the hardest part for me. Not because the work was hard (tho it was), but because it takes so much energy to remain committed and persevere.

  10. 1

    Nothing wrong with being self-taught, I went to college for CS a long while ago and I still feel like I was self-taught in the actual technical knowledge. But, looking back from where I am today, I think self-taught engineers are still not going to have as much depth of knowledge and experience in the same amount of time as one with a formal education because being an engineer is more than just knowing the technology. Also, college doesn't just give you a foundation in computer science, it develops very crucial soft skills that are needed for working with other people on projects and in teams, it helps with communication (ie. job interviewing, public speaking, etc.), these are undervalued skills but invaluable for success and some might argue even more so than the technical skills. So I would recommend a solid formal education or continuing education to make yourself more well-rounded.

  11. 1

    I found it really difficult to find "intermediate" projects.

    There are a ton of basic projects.

    There is GitHub for basically all the advanced ones.

    There wasn't a good, structured intermediate path for me when I learned (8 ish years ago).

    1. 1

      Thanks @wrannaman! This is a good insight.

      So, like, there’s a gap from here’s elementary JavaScript, and Advanced React in Enterprise Applications (just making something up). Like, what do you do after you’ve got the basics down ?

      1. 1

        yeah, for me it was, okay I've done about 10 todo-like apps, but I'm trying to build X (for me it was a dog walking app way back when).

        There was not enough information (at that time) to bridge the gap. Might be different now though.

        I will say based on hiring JR devs, many still come out of school not knowing:

        • basic dev ops (how to get stuff on the internet)
        • modern tooling
        • how to work in teams
        • generally, they're terrible at git, docker, bash
        • they don't know their way around any cloud platform (AWS, GCP, etc.)
    2. 1

      I feel this. Tutorials were really good for teaching me syntax but they didn't teach me how to program. It was like learning what certain words mean in another language, but no one telling you how sentence structure or verb conjugation works.

  12. 1

    Got a degree in Computer Science. Self taught myself different languages. I spent 3 months researching online and trying different things to get my code error working. Finally, I paid someone on Fiverr $20 and he fixed it in less than 30 minutes. Sometimes, it's better to just pay someone more skilled to do something.

  13. 1

    I love programming. I do it since I'm 14 (or even before if hacking some QBasic count as "programming"). It was 20 years ago.

    I don't really care of success, or money, but I care about my time on this planet. If I do something I love, I'll do it like crazy. If I don't, I stop. That's one of my main goal: I want to have a good time. If I can help others at the same time and make this world a bit better, I would consider my life successful.

    At the beginning, there wasn't Internet (or not so much), so I had to buy books and magazines to learn some basics. My goal was to create a video game, as many. That was the main challenge: learning how to code. The information wasn't widely available, but the quality was pretty good.

    Weirdly, now we have so much information thanks to The Internet, my biggest challenge is to find quality stuff. I'm trying to give that with my blog, by giving some well researched information and not boring click bait stuff.

  14. 1

    I went to college to learn Computer science and learned almost nothing...Learned almost everything about web development from youtube videos...

    Biggest challenge...getting out of tutorial hell...still struggling with it now....

  15. 1

    That first big push, where you go from knowing exactly nothing to sort of maybe knowing something — maybe?! — was the hardest. So easy for doubt to creep in. When I was hired as a Lead and broke $1X0k for the first time I knew I had “made it.” I credit all the learning resources available for my success.

    1. 1

      Thanks for chiming in! Agree. 0 to 1 is so much harder than getting from 10-20. Sort of a snow ball effect as you learn more and more l

  16. 1

    This comment was deleted 4 years ago.

    1. 1

      Thanks for the reply!

      I think you can build out some portfolio projects that aren’t necessarily client projects. Like just some sites you put together and put out on the web.

  17. 5

    This comment was deleted 3 years ago.

    1. 2

      Yes! Totally! Usually self-teaching means your not sitting around on the couch and pushing through hard problems. You’ve gotta have that internal motivation.

      1. 1

        I have to second what @Edsa daid, I literally went on the sauna and sat there with the lappy.

Trending on Indie Hackers
Getting first 908 Paid Signups by Spending $353 ONLY. 24 comments I talked to 8 SaaS founders, these are the most common SaaS tools they use 20 comments What are your cold outreach conversion rates? Top 3 Metrics And Benchmarks To Track 19 comments How I Sourced 60% of Customers From Linkedin, Organically 12 comments Hero Section Copywriting Framework that Converts 3x 12 comments Join our AI video tool demo, get a cool video back! 12 comments