TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: What are the reasons behind your success as a self-taught programmer?

41 pointsby newsoulover 2 years ago
Considering that you started programming on your own as a self learner and have found success (whatever that means to you) as a programmer in life, what do you think were the reasons behind that?<p>Was it:<p>1. Formal CS or Math education alongside or later on?<p>2. Pure grit and consistency in completing stuff you started<p>3. Working in real projects at industry<p>4. Something else entirely

77 comments

pencilguinover 2 years ago
Here is a secret: everyone who achieves anything is self-taught.<p>Even people who went to a university only learned from the work they did. Most of what they learned wasn&#x27;t on the syllabus. So, treat everything you do as a thing you can learn from. In any textbook you pick up, do <i>all</i> the exercises.<p>The main thing I learned in engineering school and used after was that not knowing how to do a thing did not mean I could not do it.<p>If you have to do a thing again, do it better than last time. Maybe the result could be better, or you could get there with less wasted time. Always devote some attention to how you could be better than you are.
评论 #33508354 未加载
评论 #33502886 未加载
评论 #33502975 未加载
DarrenDevover 2 years ago
1. Working for a couple of small startups in the early years, which meant writing code 8 hours a day for 6 years and being responsible for delivering not just features but full products to users from the very first year.<p>If my first job had been at a larger company, filled with meetings and processes, I never would have built up strong confidence writing code, coming up with solutions and building things.<p>2. Starting out 20+ years ago, when Googling the answer wasn&#x27;t possible also played a huge part. Coupled with a 1 above, it meant that the only way to solve a problem or to work out how to do something was to work through it over hours and days myself.<p>My early solutions to unusual problems or tech shortcomings were not always ideal, but they always worked.<p>Both of these helped build up confidence in my own abilities, a knowledge that there&#x27;s no problem I couldn&#x27;t solve, and the certainty that I was fully capable of building whatever I wanted or needed to build.
评论 #33502705 未加载
schwartzworldover 2 years ago
1. No formal math or CS education, although I heard about functional programming early on. I&#x27;m primarily a react dev, so functional programming knowledge is like a superpower.<p>2. I built a lot of little projects, but most not to &quot;completion&quot;. I did take 3 freelance projects for way too little money (don&#x27;t recommend undercharging), and those did get to a &quot;complete&quot; stage.<p>Eventually I got a job, at which point there stops being a difference between &quot;self-taught&quot; or &quot;cs grad&quot; because an engineer is always learning &#x2F; teaching themselves at work. Most of what a web dev does day to day has little to do with the topics taught in a traditional CS major. Once i was working in the industry, I used work as a chance to keep growing and adding to my toolbox. This is not something everybody does.<p>I used to have a sense of inferiority to CS grads, but I actually think being self-taught prepared me well for the day-to-day job of a developer.
dist1llover 2 years ago
Obsessive curiousity and geniune love for programming. Grit, work ethic and growth mindset follows pretty naturally when you love what you do :)
评论 #33502325 未加载
评论 #33502725 未加载
评论 #33502546 未加载
bambataaover 2 years ago
Aren’t you going to get a lot of survivorship bias here?<p>I am self taught, then went to a boot camp and now work at a FAANG. Things that helped:<p>1) Making challenging projects.<p>2) Spending lots of time reading CS books. Ended up writing <a href="https:&#x2F;&#x2F;thecomputersciencebook.com" rel="nofollow">https:&#x2F;&#x2F;thecomputersciencebook.com</a>.<p>3) “Obsessive curiosity”.<p>4) Going to a top university (for non-CS).<p>5) Looking like a stereotypical programmer.
评论 #33508706 未加载
jonathanlydallover 2 years ago
For me it was “2. Pure grit and consistency in completing stuff you started”.<p>A solo public hobby project meant that I landed up having a kind of “portfolio” for my first actual software development job.<p>I was also lucky that the interviewers were cognisant of my background and the questions focused on asking me to explain my technical decisions and how I solved problems. They were essentially gauging my general software development aptitude and potential.<p>For the job I landed I had to learn C# (had only done PHP, ASP classic and JavaScript before), but I picked it up pretty quickly.<p>The other thing I realised after having the job for a while was that the fact I had seen the hobby project through to actually releasing something pretty polished was far more significant an achievement than I originally gave myself credit for as many supposedly “professional” developers haven’t achieved this.<p>Overall, a good bit of luck, but I was able to capitalise well on it due my being a bit of a “natural” when it comes to software development.
jonfwover 2 years ago
I’m not sure I count- I learned to program on my own but went to college and got a comp sci degree before I made a dollar doing it.<p>1. The most useful stuff I learned in school was concurrency related, things like mutex or mapreduce. I may not have looked into those skills on my own<p>2. I don’t do that. If I start a passion project, most of the time it either turns into a tiny Proof of concept, or I learn a lesson and quit working on it. I don’t regret that at all<p>3. I had a sales engineer style role as my first job- it was great to get exposure to how a variety of companies run things and I still reference that experience all the time. Now working as a developer- you learn a lot more about the trade offs of various decisions when you’ve got to maintain the thing later on, so that’s been really valuable as well
JamesSwiftover 2 years ago
Like most engineering disciplines, there are two aspects to a successful career: theoretical knowledge, and practical knowledge. If you go the self-taught route you will have practical knowledge, but lack theoretical. If you go university it will be the inverse. The secret in both cases is that you _must fill in the gaps that you lack_. Too many &quot;self-taught&quot; dont actually hit the books and fill in the theory gap.<p>Also as another poster mentioned, starting off at a startup was basically steroids from a &quot;practical knowledge&quot; perspective. I got my first job as a self-taught rails dev with 1 personal site in my portfolio, and left 4 years later with experience in:<p><pre><code> - native mobile dev (both ios and android) - infrastructure management (chef, ansible, vagrant) - server administration on both AWS and colo setups - debugging + fixing performance&#x2F;scaling issues in production apps - Miscellaneous knowledge in PHP, React, sinatra, ruby in general </code></pre> Most of those things I was introduced to in some capacity in the first 2 years honestly. Now that I&#x27;ve had the opportunity to go to several other companies, its clear that my willingness to get into unknown technology and figure things out the same way I was forced to at the startup is probably the biggest &quot;super power&quot; I have now. People in general really prefer to stay in their own lane tech wise I&#x27;ve found.
yleeover 2 years ago
I am self-taught in the sense that I read every computer book I could find before my first computer at the age of 10, a Commodore VIC-20; everything else came from that. Elementary-school classes on Logo, AP Computer Science in high school, and one one-credit Java class in college are the extent of my formal education in computer science. I&#x27;ve never worked as and have never wanted to be a professional programmer.<p>I worked through Columbia doing user support for the university&#x27;s Unix systems group. I got a job on Wall Street like many classmates, but for which the hiring person (an equity analyst covering software companies) was specifically looking for a CS major; I was able to demonstrate that I had the equivalent background thereof.<p>I have been successful with computers because I enjoy working with them. I enjoy computers because it&#x27;s a hobby, albeit one that has affected my entire working life. I suspect that I would not enjoy computers as much were it actually my job. Since it isn&#x27;t, I have the freedom of being able to (for example) write Elisp[1] to improve VM, the Emacs-based email client I&#x27;ve used for almost three decades. While I may contribute my code back to the VM project someday, meanwhile I report to no one and have no deadlines other than my own. That&#x27;s freedom.<p>[1] I well remember the epiphany the day in Logo class I realized what recursion is. I still feel like giggling when I find an Elisp task for which recursion is an effective solution.
jacobmartinez3dover 2 years ago
This is a great question. I have an art degree in Animation and Visual Effects, now I’m about 6 years in as a VFX Pipeline Engineer.<p>#2 and #3 together are what I credit my success to. Showing authentic passion during interviews is also a hard requirement, as well as having good values that successful hard working people tend to value. For example happily and confidently admitting when you don’t know something. Also having the integrity and self esteem to admire and show open respect for colleagues who know more than me - ESPECIALLY if I notice myself feeling insecure towards the person for whatever reason(like we’re hired at the same with same title but they clearly are ahead of me). So far my 2 most valuable mentors were initially colleagues who made me feel insecure About my skills but, I literally locked my kicking and screaming ego in the closet while proceeding to befriend and become vulnerable with them to the point they adored showing and teaching me stuff. Advice for this insecurity: learn something from these people then directly incorporate it into your work and proudly give them credit for it. Poof, you gain some of what they have that you didn’t and your crying ego in the closet cant say shit now can it hahaha.<p>Above all else, I give myself credit for always taking interviews even though I knew I was probably out of my league and terrified - because it wasn’t the job I was after but rather the confidence I imagined I could have for the next one. If you can’t be confident and charismatic in interviews then i don’t see how you can het hired anywhere for anything that matters to you.
hoobyover 2 years ago
It&#x27;s hard to pin down a reason, honestly.<p>I started teaching myself programming in my teens - using books from the school library, and a copy of Turbo Pascal which I pirated off school computers.<p>&gt; It was personal interest and pure fascination with algorithms, that got me started.<p>I remember getting a real kick out of understanding new things. Like when recursion first clicked for me... that was a great moment. I felt amazing.<p>I later went to university, but never finished my computer science studies. They never felt amazing, never provided that &quot;it clicked&quot; moment of understanding - but were full of tedious chores. I had to do side jobs for financial reasons, and I learned soooo much more on these jobs than I ever learned from lectures. So eventually side jobs turned into full-time employment and I just stopped going to lectures.<p>&gt; It was working on real projects that made me accumulate the knowledge and experience that defines my pay grade today.<p>But it surely did require some grit and doggedness at several points along the journey to stick with it... and the reason for me personally sticking it out has probably less to do with determination, than it has to do with a slight aversion to changing workplaces because of social awkwardness... ^_^&#x27;<p>So, yeah. Many factors playing into this.
atoavover 2 years ago
4. I was always programming for <i>fun</i> and intellectual curiosity. That means I was always very much interested in creating a &quot;nice&quot; program as well as solving some problem. And &quot;nice&quot; involves low maintenance, robustness, little external dependencies, understandable, well abstracted and documented code, that is as perfomant as possible given the constraints.<p>Because I did these things mostly for myself, the span of problem domains is big, I did backend web stuff, frontend stuff, CLI tools system daemons, embedded things, game-related things, audio-related things etc. This breadth of topics helps tackling anything my current employer throws at me (which is mostly also interesting problems).<p>This is success to me: I do what I like to do and am able to do it well enough to be happy with the results and I am fast compared to others while doing it.<p>E.g. last week I was asked if I could do a local groupchat webservice for the wifi of a theatre piece (so visitors can interact with the actors on stage, without having to install some kind of internet bound app). Four hours later the working prototype including nice handwritten CSS and realtime message-passing was done. Feels good.
sphover 2 years ago
3 and 4: I started writing code daily at 14, and got my first software engineering job at 19, so I got a massive head start compared to my peers. At 35 years of age I have 16 years of experience under my belt. I&#x27;ve seen a lot of technologies come and go.<p>Also ADHD and being self taught means I have my own, weird, probably not very efficient way of learning things that involves a lot of skimming metric tons of information. Ingesting new information is how I keep my brain stimulated. Honestly, I never understood why often learning is an effort separate from the act of using. Why people tend to go on a course, absorb information, then just later use it. They should be interwoven, learn by doing and do by learning.<p>Also my parents couldn&#x27;t afford to send me to a real university (I wanted to go to MIT as a kid and I was in the middle of nowhere in Southern Europe), so there&#x27;s that.
评论 #33503097 未加载
评论 #33502861 未加载
ElevenLatheover 2 years ago
Setting aside that I don&#x27;t know if I would count myself as a success in programming (my career has been mostly in ops, though my latest role has me writing more code), I think the main forces that got me here are sheer dumb luck and the happenstance of delighting in the right technology.<p>The only reason I got started with *nix is because when I was about 10 I saw some network news piece on this wacky Finnish guy who was making his own version of Windows with his friends because he thought Bill Gates, who was in charge of Windows, was lame (I&#x27;m sure it said something else, but this is what my child brain got from it). Basically I didn&#x27;t get into Linux and the BSDs because I was a Unix fan (how could I be, if my only computing experience until that point was Apple iis at school and a few months of having our first PC running Windows 98?) but because I was drawn to the radical politics (though I definitely wouldn&#x27;t have phrased it this way) of making your own free thing to compete with the richest guy in the world&#x27;s expensive thing. When I learned that Id had released the source code to Quake under an open source license (the same one as Linux even!) too, I begged my parents for a book about C so I could understand it (though I never succeeded).<p>From them on, I was a computer hobbyist and free software ideologue and consequently became quite fluent in shell, Perl, and PHP, but I never even contemplated doing any of that as a career until I was laid off from work in another field and a few (jobless) weeks later saw a billboard advertising Linux admin jobs. I called and they hired me, and I accepted gladly because I was newly-married and broke (and my wife wasn&#x27;t working at the time either).<p>My career progression since then has been a little more deliberate, but that initial spark was really because my pre-adolescent brain liked the idea of getting one over on Bill Gates.<p>In short, I was lucky to be interested in this soon-to-be-lucrative thing as a child, so that when I really needed a job I could &quot;fall back&quot; to it.
raptorraverover 2 years ago
I studied classical music composition for 10 years before (re)discovering my love for programming. It taught me so many things that have been valuable when learning this craft. Algorithmic thinking and self discipline, staying creative under time pressure and building big systems with infinite amount of details.
MattPalmer1086over 2 years ago
Curiosity mostly. I liked to push what was possible on any language or system I was working on. I liked hacking systems or languages to do things they were not &quot;supposed&quot; to. That&#x27;s always very educational :)<p>Along the way, I managed to study most of a CS curriculum, but I didn&#x27;t have that as a goal.
dotancohenover 2 years ago
Anki.<p>I would have no career without Anki. Every time I pull out some obscure technique or command and make peoples&#x27; jaws drop, I have Anki to thank for that. From VIM commands to remembering which PHP functions are nounverb() or verbnoun() or noun_verb() verb_noun() to bash tricks to Python libraries to web tools to curl options to network terms, every day I pull out something to make myself more valuable to my employer. And other employees know they can usually find their answers with me. And I really so smart and experienced? No more than any of the others, really. But with Anki every single small trick and technique is remembered and ready for use.
Arcanum-XIIIover 2 years ago
Art degree - joined a friend in 2009 developing my first iOS app in objective C in a rush… it was rewarding, and got a lot of experience building stuff since the in PHP, Python, C, Clojure. I’m not a dev anymore, but it was fun - which gave me a lot of motivation to keep at it.<p>I’m a knowledge sponge, and by nature have a fleeting attention (ADHD recently diagnosed), so even though I was not able to keep at something very long, I at least was able to learn a lot of useful thing fast.<p>Now I’m trying to dive deeper in my interest - programming is a tool for me, not an end in itself, so I’ve switched to other interest. Still using with electronic component :)
nooberminover 2 years ago
I like many people learned hacking as a teenager, I downloaded a bunch of freeware programs and games as a 13 year old, and one was a C compiler with a tutorial. Really, I&#x27;m not sure how successful I am but I am gainfully employed I suppose, although I am a scientist, not really a developer. Thus, I suppose 1) was it, not really for the education only but because every job I&#x27;ve ever gotten was a connection from a mentor or scientist I met in grad school. Really the only &quot;cold&quot; job application I have since fought for (at least with great difficulty) was getting into graduate school for physics.
emaover 2 years ago
Always testing my understanding of new programming languages, libraries or concepts by playing around with them until I could mentally &quot;walk around&quot; them like I can mentally walk around my neighborhood[1], then being drawn to the next thing just outside my field of experience and understanding.<p>In short not moving on before mastery, then moving on after mastery.<p>[1] I think this analogy is fitting because the drive that makes write five versions of a three line function feels similar to the drive that makes me choose whatever path I haven&#x27;t walked down before when going to some errand or another.
taurathover 2 years ago
Luck, connections, and determination in that order to get me in the door.<p>Luck for having computers around all the time and the privilege of being able to have worked on them and spent lots of time with them growing up. This gave me a really big head start. Luck also for turning some smaller gigs into much larger ones, because the opportunity is not something anyone can really replicate. Most companies explicitly shut off upward movement especially for lower stage positions. I ended up at the right place at the right time with the right skills at a role ancillary to good software engineers. From an ad for a part time low level position off of craigslist.<p>Connections because I had a friend who had the patience to show me what to do and guide me on what to focus on. It wasn’t perfect but it helped a lot. Also got me in the door at the first job by recommending me as someone who learned fast.<p>Determination in forcing myself to do the practice and try to learn and build things that got me into the first gig.<p>After even 6 months of the first job everything became easier, companies would reach out to ME, I’d get incredible amounts of traction and my salary kept going up. Just getting the foot in the door matter immensely.<p>Also there’s plenty more in the luck column, mostly around privilege.<p>I’ve had many many friends who were capable but could not replicate it. I feel fortunate for the opportunities I was given early on. I wish there were more opportunities for capable and smart people. We as an industry treat junior engineers as if they have a disease.
stareatgoatsover 2 years ago
4. I fell in love with PC programming almost 40 years ago, after I taught myself to program dBase III+ (later Foxpro), and subsequently became an &quot;office hero&quot; in our low-budget workplace because there was hardly a problem I couldn&#x27;t fix.<p>Programming (logic) is a language where everyone is on a level playing field - or that&#x27;s how I perceived it at the time; any funny language, dialect or outer appearance is of little to no importance. Lastly, it has the potential to do enormous amounts of work, automatically.
dorkwoodover 2 years ago
Being able to combine programming knowledge with knowledge from my previous domain. I don&#x27;t need to be particularly great at either, but they multiply together to make me very useful.
jmartin2683over 2 years ago
The fact that when I started, there was no other way to really use a computer. It booted into basic.<p>I definitely feel like becoming ‘self-taught’ today, on the entire stack down to at least the operating system level would be very, very hard. There are far too many levels of abstraction to drill through.<p>If I had to do it today, the only reasonable path is to start at the bottom and work your way up. Starting with something like Python or Ruby is not the way, regardless of the quick wins early on.
评论 #33507326 未加载
评论 #33508114 未加载
q-baseover 2 years ago
Working in real projects at industry. Early on I was exposed to a large project in the airline industry, with an incredible architect. Lots of time had gone into preparing the project and codebase to make sure that developers could be productive without stepping on each others toes.<p>Being exposed to that project and an architect willing to explain not just what but why, really put me in the right mindset early on. I learned principles instead of technologies.
__lbracket__over 2 years ago
Not sure if I&#x27;d call myself successful but I do get paid to program as a Data Scientist (so not a real programmer).<p>1) No it wasnt CS or math education. I was trained as an EE and was expected to program in C and Assembly for my assignments. We were just expected to pick it up without much formal help (circa 1999).<p>2) I feel this aspect is required for any endeavor.<p>3) This should be true in theory, but very much depends on your team and size of the company. If you work for a small sized company, you can create a whole system and learn a lot. Working for a BiG Co, you&#x27;ll just do a tiny fraction of the whole system and your learning may be limited.<p>4) Curiosity. When I first learnt programming, I remember using programming to &quot;verify&quot; what I was learning in EE classes. I realize now it was silly to &quot;verify&quot; if Newtons method or Fourier Transforms &quot;work&quot;, but at the time it tremendously aided my understanding of translating textbook concepts into code. This aspect has stuck with me. Later when I moved to Data Science, I returned frequently to this method of reproducing basics using my own code. I feel it has indeed made me more effective in my job.
senkoover 2 years ago
5. Fun! It was fun! It still is!<p>6. Curiosity<p>7. Trying to be responsible (you would not believe how many people just dont f&#x27;ing care, if you&#x27;re not one of them this already puts you ahead)<p>Non-reasons: Formal CS - yeah, got some (msc-level edu), learned most of my useful CS before&#x2F;outside that tbh (with the only exception being database logic and loads &amp; loads of sql). That&#x27;s not to say Computer Science is not important - it is - but <i>formal</i> CS isn&#x27;t)
评论 #33502829 未加载
marstallover 2 years ago
started at 10 with an Apple IIe, 1978. Now 52 and programming most days. Professionally and also I always have some involved side project I&#x27;m pushing forward.<p>I&#x27;ve been driven by enjoyment of programming, financial need, and, I&#x27;ve been thinking lately, the sense that programming was &quot;my thing&quot; - something no-one told me to do, understood, or even really wanted me to do. Computers were like an alien landing to my hippie&#x2F;artist parents.<p>Never took a single programming or CS class, I was interested in various liberal arts type subjects throughout college. I don&#x27;t know much about computer science, algorithms, etc. But I&#x27;m good at what I do and have a solid, stable career working for cutting edge companies.<p>My dad still doesn&#x27;t get it, has no interest. Which is annoying but also kind of works for me. Still a teen rebel for being a programmer.<p>I love getting it done and getting it done right and staying up on the latest. A day where I write good code creates a nice calm feeling I can access as I drift off to sleep. It&#x27;s been a great career so far and I guess I&#x27;ll be programming on the day I die. It&#x27;s fun, why not.
CM30over 2 years ago
It&#x27;s probably a mix of side projects and luck that got me to where I am today. The former because I had an interest in running gaming sites and coding games that kept me invested in learning about web development and programming in general, and the latter because I was in the right place at the right time to get a job in the field. Seriously, I received the phone call while on the train back from another interview, and somehow got invited into the office very shortly afterwards.<p>Every role since then has involved some sort of amusing story or another in regards to interview timing, people looking for staff at the right time, connections, etc.<p>But I&#x27;d say aside from the obvious luck component, a certain degree of interest in the projects I chose helped the most, since it&#x27;s very difficult to stay invested in a project when you don&#x27;t care much about what you&#x27;re making and you&#x27;re coming up agaist hurdles you didn&#x27;t expect.
skydhashover 2 years ago
I can postpone the practice part and I can visualize things easily, connecting them to my existing knowledge map.<p>The first allows me to read book, without having to follow examples or have the real things before me. It was handy because most of the time I did not have access to a good computer or to the internet.<p>The second allows me to jump around. I could start with a book in security, hit a wall, the start a book on networking, then understand what was blocking me, and then read about operating systems and really understand another part of the first book. My knowledge is the sum of fragmented parts from all the books I’ve read (a lot). I do not have direct link to it, but a word or anything else can bring the relevant context. I use that a lot in exams where the question itself will bring back the answer to memory, or at least an hint.<p>All of these allows me to do non-linear learning, and inside my own head. After I can do a short session of practice, cementing things I deem interesting.
otrasover 2 years ago
All of the above, but I&#x27;d say that in addition to those points, it&#x27;s important to mention both luck and privilege. You don&#x27;t really see self-taught stories describe these as often, especially if they&#x27;re presenting a &quot;the pull yourself up from the bootstraps and anyone can make it&quot; narrative.<p>Realistically, both are involved. Being able to get by working a job (or two) that still allows you to have enough time and energy to study and learn outside of work. Lucking out with the job openings when you&#x27;re searching — you can increase your luck surface area, but you still need fortunate timing. Networking with alums from your school. Even having been to college at all. Already living in an area with tech jobs. Knowing _anyone_ in the industry already.<p>There was an absolute _ton_ of hard work involved for my journey through, but there was luck and privilege involved as well. I think these aspects are important to include.
DeathArrowover 2 years ago
It was due to all four. For number 4. I can mention<p>I am always genuinely curious, I always want to understand how a particular idea, bit of code, software, tool or algorithm works. I am always trying to get better ideas to solve old problems and always trying to solve new problems.<p>But 1, 2 and 3 are important. With just 4. I would have ended up as an enthusiastic but mediocre code monkey.<p>1. made me think in terms of Computer Science not mere coding. Also, besides learning a lot of things I wouldn&#x27;t have tackled on my own. Also it helped me make a lot of conexions between different ideas. It helped me to also learn how to effectively learn. And it made me lots of useful connections from faculty staff also working in the industry to my peers who got employed in various areas.<p>3. helped me talk the same language with my potential employers and solve the problems in a way my employers expect me to solve.<p>2. is obvious, consistency and determination is crucial for any endeavor.
cincinnatusover 2 years ago
Solving a problem and&#x2F;or building a thing you are personally intensely interested in is the main thing I see over and over for all skills. Programming, woodworking, cooking, etc. If you want to make something happen you&#x27;ll figure it out and bang on walls til you break through them. There is no substitute.
评论 #33508963 未加载
oblibover 2 years ago
2. I took a &quot;learn as you go as needed&quot; approach.<p>After learning the basics of how to use desktop PC on a Commodore 64 I moved to a Mac Plus and then bought my 1st new computer, a Mac PowerPC 6100. I used the &quot;Apple Media Tool&quot; to create a CD-ROM running in an &quot;Interactive Kiosk&quot; I put in hotels that had ads for local businesses. Mostly restaurants and tourist attractions.<p>The Apple Media Tool had a GUI to do most of the work, but it also had a feature that let you edit the code it produced and not long after the internet took off and I started making websites for businesses. I started off using Adobe Pagemill and that too let you view and edit the html code. From there I started hacking Perl CGI scripts and then writing my own using CGI.pm mostly.<p>I avoided Javascript for the first few years after it came on the scene but started using &quot;Prototype.js&quot; shortly after it came out. Not long after that I rewrote most of the server side code for an app I made with Javascript and jQuery and that&#x27;s still what I use most.<p>I still use Perl on the server side but for the most part my apps run in the web browser. I use CouchDB or the web browser&#x27;s IndexedDB for the back end. Never did really like SQL for web apps but CouchDB&#x2F;PouchDB.js has been easy for me to work with.<p>So for the most part I have depended on the kindness of others for the code I use most, and have only written code on an as needed basis, or just to play around and experiment.<p>I really like the tools I use to make web apps. I&#x27;ve been able to hand off the hard parts to them and focus on the features I want to create. And if something comes out that&#x27;s better it&#x27;s generally easy to implement it. The move from Prototype to jQuery is an example.<p>I spent some time going over frameworks at <a href="https:&#x2F;&#x2F;todomvc.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;todomvc.com&#x2F;</a> and when I&#x27;d went over those I was interested in I decided to keep doing things my way.
andrewstuartover 2 years ago
Extreme motivation to build my software project ideas.<p>Hard work.<p>Many many many uncountable hours programming.<p>Deep curiosity about every level of computing.<p>Coding coding coding.<p>Learning reading researching.<p>Relentless willingness to grind on problems until solved.<p>A deliberate decision to focus on learning the set of technologies that would allow me to build every part of an application. React, Python, typescript, Postgres, Linux, AWS.
abrahmsover 2 years ago
The real answer for me (and probably many other folks who are talking financial success): 1. Genuine interest in tech 2. Long periods of time alone with a computer 3. Being fairly early in a big section of the industry (web) 4. Aggressive &quot;speed running&quot; salary which got me near really smart folks
dagwover 2 years ago
Honestly, probably Phrack more than anything else. Sometime in the mid 90s I stumbled across an archive of old issues of Phrack on a BBS and I completely devoured them. They spoke to me a way very few things had before or since and I desperately wanted to be part of that world. While I&#x27;d learned a bit of programming as kid and always &#x27;played&#x27; with computers, Phrack made me go deep. I read back issues 2600 and Dr Dobb&#x27;s and checked out any programming book I could find from the library. I eventually managed to download enough Slack floppies and boot up my first Linux computer and then it just kind of went from there. Looking back I can trace a pretty straight line from where I am now, to 15 year old me reading those first issues of Phrack.
wilhowover 2 years ago
I&#x27;m not entirely sure I count myself as a successful programmer. I did build a couple payroll systems that was in place for about a decade. Built a web UI for AS400 back in 99. I started this whole journey from Photoshop 4.5 and it kinda snowballed from there.<p>What drove my &quot;success&quot; was a passion and curiosity. What I could do, tinker, and learn in the programming world was endless. I lived,breath, and sh!t JAVA, C++, VB, COBOL, js, HTML, etc, etc for about five years. My first year I camped in my cube, going back to my apt only for shower, and I wasn&#x27;t even paid well for it. I made less than 30K&#x2F;year.<p>Now I&#x27;m a SE in a DevOps&#x2F;EDR company.I still code on the side for fun, but it&#x27;s not a major focus of my job.
blowskiover 2 years ago
Entering work in the late 90s helped a lot. There was a huge demand for programmers, but zero quality control to prevent you doing anything stupid. As such, companies threw money at me and my experiments hoping something would work out.
sriram_malharover 2 years ago
A bit of all of the above. But mostly, as an artist friend put it, &quot;keep your pencils sharpened&quot;. For the last 35 years, I have tried to write some code every day as a way of keeping my pencils sharpened. I wrote a Java compiler (called &quot;lava&quot;, because the project was hot but moved slowly:) , a TCP&#x2F;IP&#x2F;ARP stack, an editor, a database ... whatever I wanted to learn. I didn&#x27;t complete any of these hobby projects, but I have no regrets ... there&#x27;s only so much time and there are so many others to start :)
lioetersover 2 years ago
For me, all success as a programmer is thanks to learning from, and contributing to, the free software and open source community.<p>Another factor is having a family computer around when growing up, I learned to program for fun. I remember working on a BBS (bulletin-board system) code base written in Turbo Pascal, back in the days before the web, when I was around ten or so. <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;WWIV" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;WWIV</a>
tluyben2over 2 years ago
Number 3; after that it was a relatively smooth ride. From industry experience came products I made that the industry want to buy and from that came co-founding companies.
thallosaurusover 2 years ago
My grandfather gave me my first computer when I was a kid at 7. Since then those boxes had something like a magic aura for me and the more I learned about it the more I was curious about how stuff worked. Ffwd 17 years later and I&#x27;m a self-taught full-Stack Web-Developer. I&#x27;m wondering where I would have landed if I didn&#x27;t had a computer back then, maybe in retail, I dont know.<p>Interesting how one feedback loop can guide you through your whole life
solardevover 2 years ago
1. Stackoverflow 2. See #1<p>It&#x27;s not so much about grit and determination or whatever these days. It&#x27;s that there are smart and kind people willing to help each other out online, for free. It takes a community, not individual superpowers.<p>You don&#x27;t have to be very smart or driven to be a developer. You just have to be willing to admit ignorance and ask for help.
Simon_O_Rourkeover 2 years ago
A prior layoff - I had time on my hands and I wanted to learn something useful, so I started learning Python for data science, specifically for doing time-series forecasting and logistic regression. Took a few months to get reasonably competent, it was quite the step from Java or C&#x2F;C++, but once I got to a decent level of proficiency I&#x27;ve not looked back. It&#x27;s also paid off handsomely career-wise too.
PartiallyTypedover 2 years ago
I have a CS degree but I am mostly self-taught. For success metric; I am working at FAANG and finishing a master’s at a top university, and my manager spoke to me about a promotion 2 months into my job with arguably zero prior experience.<p>The reason is curiosity and grit. The more you learn the better mental models you have, the better you can do analysis and extrapolate. As for grit, I am looking to find my ceiling.<p>I have met devs without any curiosity and … it shows.
评论 #33502564 未加载
labarilemover 2 years ago
1. I have some university math education and it definitely helps.<p>2. Grit and consistency is needed when working on difficult projects i.e. the ones you learn the most from.<p>3. Usually difficult project are difficult because there are several constraints (e.g. business, tech, domain). So my first years in the industry helped me a lot.<p>An important factor that allows all of the above is having fun and being passionate about your work.
goethes_kindover 2 years ago
One key ingredient is that you need to find amusement in manipulating symbols and feeding them to a compiler to see what happens.<p>I have tried instructing my brother and my ex-gf to learn in the same way I did, and they both failed, and both because they needed to learn to program, but had not real interest in it. They are both equally smart, so it has little to do with intellect.
hardware2winover 2 years ago
I found job as dev at the beginning of my degree, so i think i can say that im self taught<p>So my answer is<p>Doing programming related stuff almost everyday (excluding job)
danieldevriesover 2 years ago
Working on projects that were meaningful to me personally.<p>After a certain amount of time (years), I could troubleshoot any bug. No need to reach out to others to solve bugs. I will always find a way.<p>Using GNU&#x2F;Linux as daily driver. Helps with dev-ops enormously.<p>Lastly linked to the above, learning the full-stack.<p>Am I a success.... na. But I consider myself a success in terms of being self-taught.
jpgvmover 2 years ago
2. and 3. but mostly sheer force of will. programming didn&#x27;t come easy to me, math either tbh. Others progressed quicker than me in the beginning but they plateaued quicker also. I saw a programming career as a ticket out of the economic circumstances I was born into and through that lens anything short of success wasn&#x27;t an option.
vacillatorover 2 years ago
I feel like computers have been there for me even when no one else was.<p>The primary reason behind me being where I am is probably curiosity.
pojzonover 2 years ago
1,2,3,4<p>Did all of that. What was more is not being afraid of failure and new challenges.<p>Ive been constantly exposing myself to different and harder topics.
drakonkaover 2 years ago
1. Curiosity; I&#x27;d been building hobby projects since I got my first computer as a teenager.<p>2. Working in real projects in the industry, while continuing to learn via hobby projects on the side.<p>3. Good, picky code reviewers who taught me to dig into the internals of how things work and question + test my assumptions.<p>4. Luck.
ooooakover 2 years ago
i would say &quot;3. Working in real projects at industry&quot; when i was 19 i had the opportunity to build real world systems. Durning that year i delivered a full stack e-commerce using MVC pattern for a client. Someone who is just starting its a lots of hard work to deliver a MVC full stack app and i learned a great deal.<p>Later i joined a USA based startup really large project. This is where i learned how to manage large SaaS apps and how to manage complexity.<p>Since then i have been only building SaaS products and i love it. Currently i am leading the development of microservices based system based on GraphQL and everything is running k8. i have worked on every part of that system.<p>I think starting early helped me a lot :)
wolfium3over 2 years ago
- My dad taught me the &quot;dir&quot; and &quot;cd&quot; commands very early and encouraged me to try out all the &quot;exe&quot; files I could find on the computer.<p>- I eventually discovered QBASIC.EXE and it had really good copy-paste examples which got me into programming.
timbrittover 2 years ago
Hello!<p>16-years-experienced, self taught developer&#x2F;designer&#x2F;engineer here — currently working with international enterprise&#x2F;corporate customers as a professional services consultant for a large cloud services provider.<p>1. I don’t have a formal background in CS, but I have had to learn the industry-standard ways of solving common problems and continuously assessing order of complexity for both systems and code along the way.<p>2. I started with nothing but a design background and skillset, and I had to learn to supplement it with technical skills at each stage.<p>3. I really feel like my “success” (which is completely relative btw) is due in part to the time during which I picked up the core development skillset. Back in the early 2000’s there were no mentors around. You couldn’t just stick an evil error message into Google and expect to get the answer to your issue in 20-30 seconds. There was no Stack Overflow (and for a good while, still wouldn’t help).<p>Sometimes you had to monkey patch the problem. Other times you had to find an alternative route. Sometimes you’d realize that what you faced was a real limitation of the tech you were working with and you’d have to either devote the time to fixing it or give up and switch to something else completely. And yes, that was before you could submit a PR on the Github repo with your patch, so the next release would almost always break your “fixes”.<p>4. Multi-disciplinary interests and skillset. Having a highly-fungible skillset and being really interested and fascinated about the world around me has contributed immensely to both the technical as well as the professional side of my career and growth. It helps me earn trust quickly with customers, but also provides deep insight when attempting to model a real-world, manual process into a machine — which, in my experience is about 95% of the reason people pay us to do this job.
fuzzygroupover 2 years ago
2 and 3 along with constantly building side projects. you build enough side projects, to completion, and you get much, much better.<p>One of my side projects even got venture funding (and not in 2021 when things were overheated -- back in 2003).
aivarskover 2 years ago
5. Fuck Around and Find Out<p><a href="https:&#x2F;&#x2F;twitter.com&#x2F;rogerskaer&#x2F;status&#x2F;1576025818182332416" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;rogerskaer&#x2F;status&#x2F;1576025818182332416</a>
dmolonyover 2 years ago
Sheer volume of work. I think the 10,000 hours theory has some validity.
_boffin_over 2 years ago
Fail.<p>Fail often. Understand why you failed.<p>Don’t fail in the same way doing the same thing.<p>Combine your understanding of all the ways something (or many things) can have failures into success.<p>Ask to understand<p>——<p>Can expand on above if desired
quantasaurover 2 years ago
5. Really enjoying it. I would be doing it anyway. Having a job just gives me something specific to do with it
samsaga2over 2 years ago
Because it&#x27;s fun, I really have a great time programming. For me, it&#x27;s like playing a video game.
roenxiover 2 years ago
Based on my observations of most programmers, everyone is self taught. Some are self taught on their own and others are self taught while undergoing formal education. People who teach themselves to program are often more enthusiastic and so there is probably a correlation between that and success.<p>It is a good idea to get a formal credential, it makes it easier for HR to fiend peace with a resume.
daedalsonover 2 years ago
Surprised this isn&#x27;t on your list: people were kind and helped me.
bayesian_horseover 2 years ago
I am hesitant to say it, but completing projects is probably optional...
pulsar256over 2 years ago
self-taught SE, working over 20 years in the industry. No CS degree.<p>4. love for technology, everything else was a side effect. To this day it still feels magical with many layers to uncover and learn.
warpechover 2 years ago
Learning on the job, and putting long hours to make it work.
enneffover 2 years ago
Having a series of great mentors over the years.
poet767over 2 years ago
Grit. Code everyday (learning compounds)
hnbadover 2 years ago
Autism. I&#x27;m not even kidding.
jehna1over 2 years ago
- Luck<p>- Side projects<p>- Free time to spare on coding<p>- Landing a real programming job
andrei_says_over 2 years ago
Curiosity, enthusiasm, care.
frant-hartmover 2 years ago
Starting at age of 12.
moltarover 2 years ago
Curiosity
joshxyzover 2 years ago
you forgot option number five<p>fuckton of luck
dotBenover 2 years ago
Self-taught in the 90&#x27;s, employed as a SWE in early 2000&#x27;s at a top-tier employer. I was <i>not</i> successful and ultimately pivoted to Product Management and have had a successful career since.<p>I mastered functional and then object-orientated self-taught programming as a teenager in high school, and ended up employed at 18 with a graduate level job at a well-respected technical employer.<p>I was able to do the job in front of me, which is why they employed me without a degree, but working with incredibly experienced engineers who had previously worked at Apple and IBM I soon realized that was a vast difference to how they approached problem solving, system design and design patterns. We were building the content management system of a large news organization so it was a significant system.<p>I think my lack of design patterns learning was probably the most profound indicator of difficulty. I had muddled through learning programming from books and looking at mostly crappy open source code whereas my peers had learned academic CS at MIT or Cal. That was clearly a significant delta between my ability and their ability, and I realized that ultimately, I would never be able to compete with them or their wider academic peers in the industry without that level of training.<p>For various reasons if I had gone to university I would I have attended the equivalent of a community college and therefore the quality of my CS wouldn&#x27;t have been particularly good anyway. I just never had the opportunity to attend a prestigious university.<p>15 years later, working at Uber around 2014, I worked with some of the best engineers I&#x27;ve ever met and saw some really significant work done. I already knew that I had made the right decision when I pivoted in the mid 2000s, but my experience with Uber really confirmed it.<p>I know this Ask HN asked about successes but actually I think my career was successful because I had a good enough understanding from being self-taught while making sure I changed track to one that I could be successful in.<p>I&#x27;m not sure anyone would hire an 18-year-old software engineer without a degree in the current era and I was lucky because the internet was just in its early formational years in 2000, when I entered the job market. I don&#x27;t think that&#x27;s possible now.<p>My advice for self-taught programmers would be to consider how you approach the gap in design patterns and learning by osmosis from those knowing best practice that your peers who have academic CS training.<p>I think you also have to consider how you will compete with those who not just have a CS degree but attended a top tier university. Maybe you don&#x27;t want to work for a Google or Apple, and that&#x27;s fine, but I think it&#x27;s important to know what your goals are and whether a lack of formal education will enable you to get there.<p>For me, I worry that self-taught programmers become about the same as those who went through one of these boot camps- able to work on internal tools or lighter workloads but really reach a ceiling of their ability in the mid-career unless they pivot to something else like eng management, product management, etc<p>As a former hiring manager at one of these companies, despite being self-taught myself, I&#x27;m not sure I would hire someone with the same lack of academic background I had, unfortunately.