For all the self-taught programmers out there, we know that the path to securing your first job can be unique and filled with valuable learning exp...
For further actions, you may consider blocking this person and/or reporting abuse
Landing your first job as a self-taught programmer can indeed be a unique and rewarding journey. Each of us has our own timeline and set of experiences that shape our path. Here's my personal story and some tips that might be helpful to others:
I started my journey as a self-taught programmer by immersing myself in online tutorials, coding courses, and practice projects. I dedicated several months to self-study, building a portfolio of projects that showcased my skills and passion for programming.
One of the biggest challenges I faced was the lack of a formal degree or traditional credentials. However, I realized that practical experience and a strong portfolio could compensate for this. To overcome this challenge, I actively sought out freelance opportunities, open-source projects, and volunteer work to gain real-world experience and build a track record of my abilities.
Networking and connecting with others in the industry played a significant role in landing my first job. Attending meetups, tech conferences, and hackathons provided me with opportunities to meet like-minded individuals, share my experiences, and learn from professionals in the field. Building relationships and showcasing my passion and dedication often led to valuable job referrals and recommendations.
One strategy that proved helpful was targeting companies or organizations that were open to hiring self-taught programmers or recognized the value of practical skills. These companies often emphasized the ability to learn and adapt quickly, which aligned well with my self-taught background. I tailored my applications and cover letters to highlight my self-study journey and the projects I had worked on, demonstrating my ability to apply my skills in a real-world context.
Persistence and continuous learning were crucial throughout this process. There were rejections and setbacks along the way, but I used those experiences as learning opportunities to improve and refine my skills. Staying up-to-date with the latest technologies and industry trends was also important in showcasing my adaptability and willingness to grow as a programmer.
To all the aspiring self-taught programmers out there, my advice is to believe in yourself and your abilities. Build a strong portfolio, seek out practical experience, network with others in the industry, and never stop learning. Your unique journey and the passion you bring as a self-taught programmer can be your greatest strengths in landing your first job and beyond.
Remember, everyone's path is different, and it's the combination of dedication, perseverance, and continuous improvement that will help you succeed. Keep pushing forward, embrace the challenges, and celebrate your accomplishments along the way. Best of luck to all self-taught programmers on their journey to securing their first job!
Smells like ChatGPT
Exactly
Thank you very much ☺
I've been working in tech for well over 25 years. My career path has been long and winding, so I'll try and give just the highlights here.
I did take a class in Basic in Jr. High school, and an Intro to C in college, but it was while I was in college, as an English major, that I began to teach myself html. This would have been 1996 or so, and I was president of our juggling club. I just wanted to update the webpage for the club, and that's when I started to learn.
Key take-away for getting a job as a self-taught programmer: When you're learning, be sure to pick a project or projects that you're passionate about! It will be so much easier to complete them, and when you inevitably talk about them, that passion will only work in your favor.
Really, I just had small changes I wanted to make to that site. I needed to add myself to the list of "club officers", and change the meeting times periodically.
Take-away 2: It's much easier to make small changes to an existing project than to dive in to a large project "from scratch".
Eventually, I started working on websites for various projects in the English department. One was a grant-funded research thing, and did not have html anywhere in the requirements, but I decided to post our findings / research as a webpage. That led to a very part-time job for another English professor, and that in-turn led to working at the student-run newspaper, writing html for a new "microsite" for the A&E section every week. That was almost certainly my first real job in tech, though it was a student position, and only 10-16 hours per week.
When my financial aid got screwed up at the end of 1999, I just dropped out and it only took me a month or two to land a full-time tech job (it was in the middle of the dot-com bubble). That job was "front-end" work, (html & javascript) and ~2 years later the company merged with another company, and 2004 or so I was the last person remaining from that original. By that time I knew I wanted to do back-end development, or what I considered "real programming".
Take-away 3: Never stop learning. Try new things when given the opportunity, and you might find you enjoy some things more than others. You can totally shape your own career!
Once I started looking, I had a couple of job offers, but I ended up taking a job with some of my previous co-workers, and the idea was for me to do 50/50 front-end/back-end work. But I never really did much front-end work after that.
Take-away 4: Almost every job I've ever gotten has been because I knew someone, or was just in the right place at the right time.
Around 2007 I decided I could teach myself flash, just long enough to make my first video game. (I followed a tutorial on how to make Tetris, then modified it to have very different rules.) Around that time I started attending meetings of our local Twin Cities chapter of the IGDA, which I found very inspiring. I did my first public speaking, talking about my Flash game, and it seemed pretty well received!
Take-away 5: If you can, working on side projects is almost always rewarding. It's especially important to get them to the point you're not afraid to show them off, and put them in your portfolio or resume. (I do think portfolios are more important for folks who are self-taught than for folks with comp/sci degrees.)
Toward the end of 2008 I decided my next game would be for the iPhone. I spent a lot of nights and weekends, and I think I really leveled-up my programming working in Xcode and Objective-C. (I fell in love with strongly typed languages.) About 3 months later I released my first iPhone app in the store.
Around 2011 I'd been attending lots of meetups related to App development, and I'd worked on several projects, both personal and for my employer. (But it was still mostly web-dev at my day job, even though my passion was clearly for mobile.) I gave several talks at a group called Mobile Twin Cities, and the founder of that group had a mobile consultancy, and he recruited me.
Take-away 6: Find user-groups in your area that are relevant to the work you want to do. Attend them and (ideally!) find a way to give a talk. (Or at least address the group for a few minutes. Most groups have time for announcements.) Putting yourself out there, especially in a way that shows off your skills/abilities, can be crucial to landing any job in tech.
I think I was only at that company for 6 months before another merger was announced, and a year later, I found myself no longer writing mobile apps, but doing macOS desktop application development instead. I lined up a contract gig, (fortunately a very flexible one), and gave my notice.
They convinced me to stay a whole month before leaving, but in 2012, I began working freelance/contract, and I've been my own small consultancy ever since. I've even managed to work on a bunch of games! (Though my passion is definitely still mobile, I've done some VR work, and I'm currently very excited to work on some projects in visionOS.)
I someone finds this helpful!
FWIW, I cross-posted this to my blog at chesstris.com.
I was working a computer lab for a private school in the south of Brazil. In my free time I started learning PHP. Later on I was tasked to maintain the school's website. There was a teacher who worked as Public Relations to the local media. She was always sending the posts to the website in word format and I would convert them to HTML. I rewrote the website to develop a PHP CMS so that she could log-in and do the posts herself (all done from scratch).
I added a "Powered by" at the top left of the website. A few months later, the owner of one of 5 IT companies in the city (it was a really small city) sent me an email after finding me through the website, offering a job. I accepted and handed my notice, that was my first job.
Important to note:
The school I worked as IT Lab was the one of two schools that provided advanced programming teachings in the city. I came from a public school and I was referred to manage the IT Lab job from a friend who studied there and was working in the IT Lab. They liked me but didn't know I came from the poorest neighborhoods in the city and couldn't addord the courses.
Here's the trick. I used my free time to learn a programming language while all other IT Lab managers before me used to just surf the web, I didn't have access to a good internet at home. I did much more than my job by rewriting the school's website, I started to rewrite the website so that I could put an Ad at the top. Being someone who created the website for the biggest school that teaches programming in town, it was a matter of time before I landed a programming job.
Think about a long-term strategy, not merely to do your job and go home. You might be closing life-changing opportunities.
This is the first time I publicly talk about this.
Initial Salary (2008): U$5/day
Last Contract (2022): U$1050/day
For more details: fagnerbrack.com/a-coding-leap-ed8e...
I have a minor in CS but everything I did in Java and Kotlin leading up to my current role as an Android developer was self taught.
I was in a quality role at a few companies for about ten years prior to my current role. So by this point I really understand the SDLC and the industry.
Truth be told, learning the minor at a university taught me more about how I learn than anything. I learned way more on the job building automated tests than I ever did in school.
I landed my first job by showing my skills and low balling pay to get into an actual development role. It was 1992, which is to say a different environment with different barriers. I don't recommend this course, but then again I don't think a four year degree is necessarily the right path either. Today the hiring environment is different. In some ways software development has never been easier to learn, with online resources beyond the dreams of my 1992 self. On the other hand it is more difficult to stand out, even when you do have university qualifications. I'm not looking for qualifications as much as passion and real capability. Working on open source can show both, and will give experience working in virtual teams. So, even if you have taught yourself development a qualification will help, but so does passion and real experience in development that you can show on a CV.
Almost 9 years ago, I took a 12 week coding bootcamp in javascript. It was intense, but around week 10-11, during our final project, everything finally started to click. After that, I had no job lined up. I spent the next 2-3 months applying for jobs, as well as signing up for staffing agencies as a freelancer in order to build my portfolio at the same time. I even landed a freelance UX gig via Craigslist!
My first more 'long term' engagement was as a web developer intern (paid) for a software company, mostly building landing pages for their marketing team. Basically that whole first year I didn't say 'no' to any freelance or part-time opportunity, which helped me expand my skillset, network, and clients - probably about 6 or 7 in total. There were weeks where I went into 3-4 different offices as part-timer/freelancer. I had moved in with my parents at that point and my goal was also to save as much money as I could, so my social life also took a back burner to working on projects and learning different facets of web dev. I envisioned being a freelancer/contractor and being able to travel from place to place and take time off between gigs. The whole reason I got into web development from a career perspective was this new idea of remote work, not having to commute to an office every day as I did in my first jobs out of college.
Eventually, after I took about 6 weeks off to backpack in Europe, I was back looking for work. I decided to contact a company that had previously rejected me very early on in my job search after code school (I failed the take home project), saying I was open if they needed freelancers and that I had actually gotten more experience and completed some freelance gigs (that were similar to that initial take-home project). I toggled between that and a couple other freelance jobs, until eventually that company asked if I wanted to come on full-time. When they said I could work remote, it was a no-brainer for me.
My advice to anyone trying to enter the field would to tell them what worked for me -- I said 'yes' to everything. There were many long nights and weekends spent coding and de-bugging, which in turn taught me how to seek out answers on the web. Eventually, things start making more sense, and even things that are unknown aren't as scary purely because I know if I put my mind to it I can solve whatever I need to.
I am lucky to have had great mentors and managers along the way, who have passed freelance or job leads my way as well.
I do have some formal education in programming but I consider myself a self-taught programmer as I had to make the career transition from IT to Engineering without the assistance of a second degree or bootcamp.
When it comes to the story of how I got my start, I don't credit it to a specific gig, but a series of gigs that enabled me to build enough reputation to land a non-contract FTE role. Those gigs are as follows:
I'm 17 years into being a self-taught programmer. It's been a wild ride and still love the game. I landed my first gig by bidding the minimum allowed on Elance (I think it was $50) regardless of perceived complexity, telling the job poster that I had no experience, and would work my tail off to make it happen for them... then proceed to actually make it happen.
It was absolutely a trial-by-fire approach, but turns out it was game-changing for me. You mean to tell me that people would pay me to learn something? Amazing.
I have such mixed feelings about this. I am glad it worked for you, and that you were able to dovetail this experience into a career. When I was first starting out as a freelancer, I thought at first I could maybe find work on sites like elance, but it was full of folks like you who bid unrealistically low rates. Frankly, I think half of them were scammers. In general, I'm glad that didn't work out, because gigs are much better when the client looks at you as the expert in a subject, as opposed to the lowest-bidding contractor.
I think any conversation about this topic isn't really flushed-out unless the topic of privilege comes up. I certainly had plenty of it, learning my first tech skills basically while I was in college for an unrelated degree. You clearly had time and inclination to work for well-beneath a living wage while you were learning.
I think it's interesting that our industry seems so hard to break-into, while simultaneously there are more open jobs than ever before.
Back then (and even now, if I'm honest), it was like a game. I was in college (econ ftw :p) and between internships when this all started. I remember sitting in the hallway before class refreshing to catch fresh gigs early. It was pointless to try to strike up a conversation on a gig after anyone already had the client's ear. I learned that the gig was won or lost by early client engagement. Making the client feel like they had been seen and had seen me on a human level allowed those early learning experiences to blossom.
It was a rapid fire learning experience. From how the platform worked, what the norms of the platform were, how to talk to prospective clients, how to manage expectations, how to communicate with clients, how to appropriately hand over work, to finally asking for that review at the end. The tiny, incremental successes along the way, buildling the reputation that unlocked the ability to ask for higher rates, and ending in a spot fielding invitations with enough clout to not have to fight to be first.
Just like early levels in the Sims or WoW, it starts with a grind. I had no skill points, sucked at everything, but was willing to do the grind. And certainly, being in college I had the privilege of some extra time on my hands.
I'm simliarly caught with mixed feelings about being seen as or perceived to be an expert with early/low-skill client relationships. Maybe that's not what you meant? These days, it's a wild red flag, of course. But back then it was part of the conversation, "Hey, this is new to me. I'm willing to give this a shot and you'll get a screaming deal if I'm able to knock it out. And believe me, I'm going to give it my level best. It matters to me that I'm able to do this... and do it well."
How do you think early interest could be better nurtured?
When I began freelancing, I had over 10 years experience in the industry. Only a few in the kind of work I was doing (iOS development), but at that time, nobody could claim to have more than that! So I started out marketing myself as knowing how to do something very few developers knew how to do at the time. (These days, of course, there are a lot more folks that know mobile quite well, and having a lot of experience in it is not as much a leg-up as it was in 2012.)
I don't generally recommend anyone new to development work freelance, because there are so many other skills at play. But if you've already got those skills, (managing client relationships, requirements gathering and scope management, not to mention managing your time and your own productivity), then clearly it can work!
My very first paid web dev job was a micro site for a local youth club. I got recommended by a friend who was working there. My predecessors, probably some other young creatives, had been doing a nice job, but nobody was able to find the credentials to maintain the existing site, so they needed a replacement. The internet was still new and seen as an optional gimmick rather than a must-have, so everything was quite low-key and pragmatic, and there was a lot of space to learn and experiment.
Like @cheetah100 made clear, you can't compare the 1990s situation to these days with video tutorials, bootcamps, AI, international competition, and HR professionals specialized in recruitment and hiring. I feel lucky for my journey and I'm not sure if I would have chosen to become a professional developer in the current situation, but every time has its pros and cons.
I haven't yet.
I wish I could work somewhere, but i don't know where would hire me, and I a lot ov vendors for online money storage/transfer, etc..., like PayPal, do not allow minors.
Though, even if money wasn't an issue, as if I was a volunteer, I don't know what I'd even (help) make in what language.
I deal with computers since my childhood on the 90's, using MSX, 486 with Windows 3.11, you know...
Then, fast-forward to 2008, in a family incident I've leaved my house, with no money, no job.
One friend of mine said to me that in his job they were looking for a trainee Frontend Developer and then I applyied to the job, being accepted after the first interview.
This job wasn't planned to be my career, since I've several other interests, and like I said, family issues, nothing was really sharp, very clear at that time and I was feeling that this job could be temporarily, figuring out alternatives along the way.
Well, I've been working "Temporarily" with Web Development since then, but also learned A LOT on the path by myself, also working Home Office since 2014 gave me more time to expand my knoledge.
I've learned to develop with HTML / CSS / ECMA (being "evergreen" retroactively here) since their initial versions. XML, e-mail templates. Internet Explorer 6 and ALL THE INSANE HEADACHES THAT THIS BROWSER GAVE TO ME, but I've learned to handle it smoothly. Vanilla, jQuery, YahooUI (YUI), MooTools, Backbone, Prototype, AngularJs, IonicJs, RxJs, Angular, Ionic. Java, Asp, AspNet, PHP and mySQL (Wordpress). XMPP Protocol (Chat), Pub/Sub patterns (PubNub, SockJs / Stomp). I do no what else, hahahaha.
I've learned to be a Designer too, made logos, layouts, UI / UX analysis. Prototyping and architecturing MVPs, Sites, Hotsites, Facebook apps, Single Page Applications, Mobile Apps, Whitelabel / SaaS, methodologies of work, mental abstractions of every single resource possible available to everyone of us on the Internet and that the Client needs to use on its project, of course.
I've dealed with not only Frontend and it's correlations but with Musical Vocal and Bass Development, Woodworking, Cooking, Audio / Video Production, everything alone, except some time being teached by a professor (Musical), but was after learned alone and for a short period of time.
On Computer Programming, I didn't had any formal training. I've learned to program, and to Web Develop, by reading and analysing the code, how things works when you modify it, the causes and effects, by experimenting.
Of course that I had books along the way but they weren't the main reference. Some of them I didn't even readed completely, or only consulted for reference.
And on my career as Frontend Developer, I've dealed with the Angular Stones of Web Development: HTML / CSS / JS. Saw their development along the years, "Table Development", "Tableless", "Float", "Floatless", you see: things coming, making their work, their changes, and then being replaced by other stuff, renuncing their own paradigms.
People that work with Mobile / Web / IoT, whatever, that came after 2010, I guess that they really don't have this particular perspective of the era when those Development modalities weren't born yet, or completely.
It's important to say that, with this development occurring in parallel with the increase of the overall Internet Speed worldwide, the data that you can handle changed drastically the way Computer Programming could be faced entirelly.
Changing back to my history, since my childhood I have this profile of learning things by observing their functioning, analysing their characteristics, properties, and so on.
I've played a lot with Lego, made animations with a VHS camera with it. Made a RPG System. Played with clary action figures (like 3D modeling for games), and woodworking ("bearings kids car", toy guns, etc).
To finish, I think that what matters the most for those who learn by themselves is to keep, most importantly to be ABLE to be, ALWAYS CURIOUS, and I mean be able to be is because most of the modern psychologic issues like anxiety, depression, stress, impact dratically on your capacity to learn, to keep moving on, and maintain your essence alive.
I think that's it. Oh, and I've learned English by myself too, but I know that I know NOTHING in face of Web / Computer Development is, and also in face of Reality itself.
Also thinker, father and husband.
Thanks for your time.
I wouldn't consider myself an expert, I'm a full time Front-End developer, landed my job 4 years ago, how exactly?
I worked at as a customer care as I wanted to be a developer but money were tight, had to work something to pay the bills, eventually things changed in the company and the policy got pretty bad for the employers to the fact where I felt like I'm being used and abused with tasks, I decided to watch courses on codecademy, download already created projects online (didn't use GitHub back then but plenty of resources there nowadays and I'd suggest you use GitHub if any of you decide to follow my steps), I'd read the code firstly by making sure everything is well commented - that way I knew it's at least a quality code, not some LQ code written one, anyhow, with that being said, I'd find multiple HQ projects involving JS/React and I'd recreate them by watching the coed and seeing how the code interacts with itself, the changes I make step by step -> seeing the changes made me learn how code works.
It took me around 2 months to make a few projects until I was asked to create a few assignments for an exam for a university by a friend of mine, that task I accepted and once finished, I uploaded it on my GitHub account (by the time I didn't know about GitHub, in 2 months I was already using it to push my projects there) and it was my best portfolio project, eventually I started applying for a Front-End position where I got called only by one company out of 5 and the interviews went smoothly, I was also offered a higher salary than what I wanted, right now I'm one of the best in my company and in my team, practice also taught me a lot but that's how my journey ended as a self-taught programmer.
Cheers.
I originally started out as a pre-press designer, creating artwork and typesetting, and producing film and plates for a printing company. I did that for many years, so I was comfortable working on a computer with fast deadlines. At the time Netscape Navigator 2 came out, which introduced tables with cells containing background images, as well as Javascript, so at home I started noodling on it as a hobby, and really enjoyed it. When the company I worked for got acquired and laid everybody off, I took the leap and started looking for work in web instead.
I was lucky enough to find a local agency that was both hiring and also willing to take a chance on me. I worked there for many years, eventually moving to a partner role in a startup CMS, where I got exposed to UX-heavy full-stack development and loved it. I've been in that role ever since. Unfortunately the startup failed so I was on the job trail again, this time landing in a SaaS company. They had a ton of great habits that taught me a lot about professional software development, including a staging environment, issue tickets, strict reviews for merge requests, QA, and more.
I was really struggling with imposter syndrome at the time, being horribly aware of everything I didn't know -- especially since the importance of dev-ops was rising significantly at the time. I didn't know anything about compiling assets at build-time, automated unit tests, continuous integration, or any of that, so I went through the Full-Stack Developer program at FreeCodeCamp.org, and gained certification in several fields. This really helped with my confidence, and when a new opportunity came my way, I was able to jump aboard with both feet and contribute right away.
tl;dr: Learning on the job is possible in a work environment where they appreciate soft skills like problem-solving and communication as much as hard skills that can be developed and nurtured over time. But if you're suffering from imposter syndrome, look at your self-imagined weak spots and train them up formally with certifications, using a larger course like FreeCodeCamp or one of the online learning platforms like Udemy.
I had been doing small freelance and non-profit sites on the side. I created a nice portfolio site to showcase my work and shared it at my first interview. Immediately got the job.
Started my own company! lol
Looking for it now .... as frontend or full stack