5 ms·
How do self-taught developers get jobs? (2016)
- mattbgates 9y agoWhat a beautifully written article. You explained me. You explained it well. I've never picked up a guitar, but I am a coder, and really, to learn anything, you have to at least be interested and wanting to learn. Most important, you could read a hundred books, but actually doing something with the knowledge is the only way to really learn. I am a self-taught programmer and never had any dreams of ever doing it for a living, yet here I am, started off getting hired as a programmer for Visual Basic 6.0 working on autobody shop software. I eventually left that job ( http://www.confessionsoftheprofessions.com/the-opportunity/ http://www.confessionsoftheprofessions.com/the-opportunity/ ) and got a job working in web design for a media company. I had taken a few college classes in programming and realized it really was mostly just theory and little sample designs. Nothing that I have really ever used or that helped me. Sure, I got a good grade.. passed the class, but that was about it. Most code that has been useful has always come from me learning it myself. I tried taking a database course and ended up having to drop it because it just confused me. A few weeks later, I spent 3 hours teaching myself about SQL queries and adding, removing, editing, and deleting data. I completely understood it and that escalated me into actually making valuable web apps in which I am actually charging money to clients to use. And as you said, "build and build some more" .. absolutely right! This is the project, a free web app, that got me started doing what I am doing: https://mypost.io https://mypost.io Solve a problem: I wanted to get a web page up on the internet in seconds without having to worry about registering for an account or having to share my email with yet another website. Everything since then has only be escalating my knowledge and even helping me to enhance my code for the better. Great advice!
- conorcleary 9y ago"Generate URL" isn't working for me on your Create Post page.
- mattbgates 9y agoYou have to enter something into the headline. If nothing is entered, it automatically pulls from there.
- EliRivers 9y agoThat's all very nice, but it doesn't seem to be answering the question "How do self-taught developers actually get jobs?" It dances around becoming good and having a lot of things to point to to demonstrate being good, but doesn't go near the actual question.
- jasode 9y ago>, but it doesn't seem to be answering the question It seems the relevant "answer" is : >To become a great programmer with very marketable skills, you have to build things and write code. [...] As you are building, save your work and put together a little portfolio on your website. The projects portfolio gets people interested. I've seen some websites that showed off a project and on the webpage somewhere would be blurb like: "Btw, I'm also looking for a job in Javascript blah blah blah." And then the recruiters or hiring managers would email them because they were impressed with the work they saw.
- freework 9y ago> The projects portfolio gets people interested. No it doesn't. My portfolio that I've been adding to for the past 10 years doesn't get me any offers at all. You get offers by networking and making buddies with high powered people.
- lr4444lr 9y agoI think he's implying that you get it through an abundant portfolio and the ability to ace the "practical" kind of technical interview, but you're right, that needs to be spelled out. I imagine that very few people doing everything this guy is describing are going to get a job at one of the larger companies with a more rigorous vetting process where the gaps in the CS fundamentals are going to show. He should delineate the kinds of jobs these people will be strong for.
- Coincoin 9y agoI agree even though there are several ways, having a portedolio is the best. The first method I personally used was to work for the guy one week with ludicrously low pay. He said yes at 7$/h, but I would have gone down even more. This kick started my carrier enough to not worry about searching for jobs anymore. Second method I employed to get to the place I wanted to be was to build something that would impress them and publish it. It took 2 years and it worked. This is all anecdotal but it worked for me.
- dozzie 9y ago> Yet, if I sat down and decided to build my own computer language or operating system from scratch, I bet I’d learn a lot of interesting things along the way. Or, in some fields, you would learn nothing at all, because you would hit a brick wall of your lack of understanding basic concepts that are taught in some of the classes you've dismissed in the article. Though most of the fields in IT are reachable by people without external training.
- santaclaus 9y ago> because you would hit a brick wall of your lack of understanding basic concepts that are taught in some of the classes you've dismissed in the article Ehhhh, it is possible to learn just about anything on your own if you are interested enough. I have a coworker who didn't go to college but who has been working through those little yellow Springer-Verlag math books for fun for 30 years, and is thus our first go to anytime some weird theory questions comes up.
- dozzie 9y ago> Ehhhh, it is possible to learn just about anything on your own if you are interested enough. Not really. There are several fields that have two types of learning material available: most basic and trivial stuff only good for showing off at parties and academic books and papers, too difficult to learn from without guidance. Unless "interested enough" means "you're ready to put in enormous effort". > I have a coworker who didn't go to college but who has been working through those little yellow Springer-Verlag math books for fun for 30 years Of course there are exceptions. Who do you think developed all these fields if not untrained researchers?
- gravypod 9y ago> Not really. There are several fields that have two types of learning material available: most basic and trivial stuff only good for showing off at parties and academic books and papers, too difficult to learn from without guidance. Do you have an example? I can't think of anything in my field, computer science, that can't be learned by self-experimentation and reading. A good example of more hands-on science learning would be Cody from Cody's Lab who has claimed to have done similar experiments dating back to his early teens in highschool before he started his college education.
- xupybd 9y agoI like a lot of what the author is saying, but there is still value in learning the theory. You can get learn a lot building your own apps, but then you're forced to learn some lessons the hard way. Sometimes you can avoid making mistakes by learning from someone with years of experience. You don't need to take a course, but reading can help so much. Books like The Pragmatic Programmer, Code Complete or Literate Programming can set a good base for thinking about your code. Also to address the how self taught programmers get jobs, it's worth pointing out that the first question was from a 17 year old. I'd say it would be tricky at that age to get given a chance by an employer. So with time and age their employ-ability should increase as a factor of age alone.
- thaumasiotes 9y ago> the first question was from a 17 year old. I'd say it would be tricky at that age to get given a chance by an employer. So with time and age their employ-ability should increase as a factor of age alone. Seriously? Who do you think is more employable? - 17 years old; high school graduate; never had a job. - 30 years old; high school graduate; never had a job. If it isn't the second one, you're describing something other than "age alone".
- xupybd 9y agoTo be honest 17 is very young. I'd employ neither, without something that blew me away. I don't know that making that comparison is really relevant. 30 years and no work history implies some problem that has prevented them from working. 17 years implies a lack of life experience and likely a lack of soft skills. Once they hit their 20's however they're going to be less of a gamble, regardless of their work experience. So yes at some point too much time will have passed for them to become more employable. But I was only thinking in a sub 5 year term. More as a means of encouraging someone in that situation, not as a hard and fast rule, that the older you are the more easily you're employed.
- thaumasiotes 9y agoHey, whatever you like! Who's more employable? (1a) 17 years old; high school graduate; never had a job. (1b) 22 years old; high school graduate; never had a job. Or, if you prefer: (2a) 17 years old; college graduate; never had a job. (2b) 22 years old; college graduate; never had a job. I submit that in every case the 17-year-old is more employable.
- deleted 9y ago[deleted]
- chrisbennet 9y agoI'd say the best developers are self taught and by that I mean autodidacts. Those few courses in college are great but if you don't keep "schooling yourself" you won't ever be very good. Something I do think is great about formal education is that you are forced to metaphorically, "eat your vegetables" i.e. learn some fundamental things that aren't interesting or aren't as interesting as some other things you would study if it wasn't for a test.
- sp4rki 9y agoAs a self taught guitar/piano player, programmer, and investment trader I couldn't agree more. I learnt by reading and playing/coding/investing as much as I could when I could. As to how to get a job as a self taught anything? Being persistent.
- ptr_void 9y agoI don't entirely like this picture of self-taught developer. A self-taught developer should teach themselves necessary theory as well, not just build things. Otherwise one will be biased towards learning only the things that are fun or easy (theory is seldom fun) - and there will be gaps.
- G3E9 9y agoAnswering the HN title, as a self-taught developer, I did some full-stack web development work (pro bono) for a small company and built my reputation up there over 2-3 months. From there that company introduced me to a staffing agency which has placed me in interviews with above-market offers (starting my next project through them soon!) I have had no recruiters or clients question my lack of formal education (I'm 2 history classes away from an associates) except for a health care organization who's insurer required their workers (direct-hire/contractor) have a degree by their definition of being HIPPA compliant. I've built relationships up over time and have proven myself to others that I can deliver and solve technical problems - really, they're sponsors... I mean, isn't that all a degree is, someone trusted saying you can do something?
- stirno 9y agoNearly 20 years in now as a self-taught developer.. and I agree with most of what the post says. I would just add that a young person should continually keep trying to get a job, any job, building software. The process of applying for these kinds of jobs helps you identify areas to focus on. I think the biggest thing that keeps people from being successful is the assumption that, even with all the effort they are putting in, their potential peers are better at the job. In some strict sense that is true but delivering customer value is number one. Keep your focus on that, people will want to work with you. Ignore any feelings of being an imposter. I got my first contract development gig at 14, first salaried position at 17. Stick with it and make it happen. Be confident. Don't be a dick. Also, the original question talked about using Java. There is nothing wrong with Java and there are a lot of jobs in that space but I can't imagine a harder place to come in as a young untrained programmer than Java Enterprise development.
- Mandatum 9y ago> but I can't imagine a harder place to come in as a young untrained programmer than Java Enterprise development. It's funny, I can't think of a better place. Well-established companies will have the money to support you as you learn, cogs move slowly in these orgs so you don't have to rush - take your time as you learn about the code base, and figure out how things are done certain ways and make suggestions to improve.
- stirno 9y agoYa I understand that, if you can get in the door. Those same companies are also the ones I've found more likely to automate rejections of applicants who can't check the right boxes though, making it harder to get in without experience.
- Mandatum 9y agoThis is true, I guess networking is key here - I got into that kind of company by reporting a bug on their website and explaining it over coffee with one of the tech leads. Hired the following week.
- twblalock 9y agoI'm a self-taught programmer, and I got my first job in the industry in 2012. Now that I've been interviewed as a candidate and interviewed candidates for jobs at my company, the thing that stands out most to me in the software industry, whether engineers are self-taught or not, is that networking and personal connections really matter. The hardest part about getting your first job as a self-taught engineer is getting companies to take you seriously. A lot of companies will just throw out applications from candidates without CS degrees, unless those candidates were referred by someone inside the company. Like most job requirements, the degree and experience are flexible if you can get past the bureaucracy, and knowing an insider helps you do that. So, I agree with the author of the article that a good portfolio is necessary, but I would rate networking just as highly.
- bobbytherobot 9y ago> A lot of companies will just throw out applications from candidates without CS degrees, unless those candidates were referred by someone inside the company To add to this remark, getting hired as a programmer is a show and dance in more than one way. For example, I stuff my resume with specific keywords for the initial recruiters, not the seasoned programmer who in the end interviews me. My advice is to study up on interview coding questions. Half of them have little to do with the actual job. Often people are picking a homework question they had from their sophomore year in college because they don't know better (or they have a bias towards people like them). Is the interview process fair, no. It just isn't. But if you are smart, you'll play the unfair parts in your favor.
- toexitthedonut 9y ago>Whether engineers are self-taught or not, is that networking and personal connections really matter. As someone who has no good network, is there any other good way? I tend to read "X really matters" as "X is essential" in that without X you're nothing. I don't believe in essential ingredients- I believe that, as professional life is very open-ended, there is a multitude of good recipes for success in which there is no common ingredient.
- twblalock 9y ago
- dizzystar 9y agoI'm a full-on autodidact. I've never seen a college campus, much less been in class. I should be, by all definition, for this article. I play guitar and program. How good vs others is a matter of opinion. I hate the short-cut analysis that this response gives. I hate it when people confuse classical training for do-it-yourself learning. There is simply no excuse for not knowing the theory, and sadly many autodidacts feel like dismissing theory is proper justification for self-baked learning, and I'm sorry, this is not true. It's pure laziness, especially in a day and age when so many excellent books are on the cheap, and even MOOCs are available that really drill down and challenge you to rethink your own IQ. Even if I've never actually used DFS or had to build my own hash table, the ideas have been incredibly valuable to know about. These are all components of proper design and thinking. I'll say it bluntly: You CANNOT play guitar well without learning the underlying theory and you CANNOT program well without learning the theory of what you are doing. Yes, I know people point to famous musician X who knows no theory, but they do know more than absolute zero. They are, more often than not, saying they don't know enough to teach it, but they certainly know it. Even Hendrix knew his scales and proper chord progressions. Yes, you can sort of BS your way into something resembling knowledge, but the problem is, if you can't use language to describe why something is good or why it works, you are guessing, pure and simple. How do you find a job as an autodidact? Well, the main problem we all have is that we simply don't know where we are in the pecking order. We sit in interviews and don't really know how to describe why we are better than a college grad (to be honest, we probably aren't). For autodidacts, it is probably easier to get contracts or build our own businesses. The language for a contractor is "I'm able to do this and this is what I charge," as opposed to "I'm able to do this better than the other 8 people you are interviewing." Contracting is a much easier sell. If you have a convincing project, then you are good to go, and that's all you really need. A business is the same language as a contractor: You are able to do this and you are good to go. Post ads, open a paywall, whatever. There is no asking permission to work, just do it.
- toexitthedonut 9y agoI'm self taught by most accounts, but I have a 4-year degree. I think it's a curious predicament I'm in, because part of the curriculum is "web programming but not really Computer Science". The major I took doesn't even exist in that college anymore- it had a name change and major curriculum overhaul. I think it felt the throes of trying to teach by the tool, which is a big problem in a fast-paced field like web development. In short, my degree was very "bootcamp-y" in nature, in a decade before coding bootcamps became very popular. Even worse, I think bootcamps have made a lot of my 4-year degree obsolete. I got a few jobs at mom & pop places, I've consulted for a media agency, and yes, most were indeed contract jobs. But these jobs are not stable as working for a major tech corporation. And these are not places that allow me to really refine my engineering skills and learn how things are developed to a large scale. Building websites for clients that do not intend to grow on a national level are what you'd be limited to if you don't learn the theory behind programming. However, I have no interest in building my own agency business. I'm a very technical guy through and through. I am an autodidact with a dilemma in which I want to follow the mainstream career path of a CS graduate. One that is marked by working as an engineer reputable companies and connections in these companies. But trying to do that with a self-taught background and with no friends that know me well enough to refer me in a professional capacity, it's been a very rough road.
- bobbytherobot 9y agoAlthough I have a Computer Science degree, which I value, I am mostly self-taught when it comes to my career as a programmer.
- bgammon 9y agoI am a recent undergraduate. My undergrad CS major did not offer courses in line with my interests (they focus on data science, I focus on systems). The bulk of my working knowledge has come not from that program, but from the countless hours I spend reading at practicing at home. Undergrad has given me credentials, and provided invaluable momentum to get me started, but over 4 years has acted as a hindrance to allowing me to become a strong candidate for jobs in the focus area I care most about.
- simonsarris 9y agoThis is good advice, and "Go out there and build something" can be extended even to "Go out and be a developer in public." Blogging is way under-rated, so is (not mentioned by the article) StackOverflow. I wasn't self-taught but did get a lot of interview offers this way (and job offers and book offers). Around 2010 I started answering questions on StackOverflow for the 'canvas' tag, which began because I had some questions and then realized lots of people had interesting questions of their own and I wanted to help. It got addicting in the way that playing with Lego blocks is addicting as a child. Just this strange urge to do it and to get excited about it, and its quite gratifying to feel useful. Not a lot of people continuously participate, so if you do you stand out. All of a sudden I had a "public" developer persona, and I was getting recruiter emails (some very serious but most typically flippant) or just people emailing me questions personally even though I didn't really have any projects to my name. I wrote just a couple blog posts to help out with common issues, and then Pearson asked me to write a book. Sadly the book-writing crushed all my free time and it was actually the reason I stopped regularly participating on SO. So you don't have to build anything to be taken seriously, you just have to be out practicing your craft in public. Blogging and answering SO questions are a great way to build some kind of presence and there are no barriers to entry.
- mdip 9y agoEquating learning programming with learning a musical instrument was an interesting take. Like most analogies, it fits in some ways and doesn't in others, but the ways that it fits ring quite true. Programming is in large part an art and an act of constant 'practice'. A lot of us divide into two camps - "self-taught is better" or "university is better". In interviews I've ran in the past, I've often been an advocate for lesser considered candidates that lacked formal degrees but showed exceptional understanding of the craft. I've also been on the side of devaluing the degree of a person due to their lack of experience or quality code that demonstrates their practical abilities. Self-taught programmers can lack some of the foundation of software craftsmenship, but not always. It usually just depends on how long they've been at it and what their exposure is to large projects. The self-taught tend to start out like self-taught musicians -- "do first" then learn the specifics later...if they're needed at all. Unlike a musician -- who might be able to get away with never learning to read music or understanding anything about music theory, it's not possible to design a supportable piece of software without understanding major core concepts of computational theory, or design practices like 'SOLID' and the Single-Responsibility Principal. The moment you have to extend a large program you've written, you discover these mistakes and tend to start learning them. Here's the thing, though. Self-taught programmers get jobs the same way as everyone else because we're all self-taught. The moment we leave University, our skillset and even parts of computational theory, become outdated (or maybe our skillset was already outdated due to the choice of technologies that the school decided to use)[0]. Regardless of being self-taught or University trained, I look for people who can demonstrate a constant state of learning. I like a candidate who knows the language I'm targeting for a job, but comes in talking about a couple of other languages that they're poking around with and find interesting (as well as understanding why they find them interesting). Way too often we'd get University graduates who clearly chose Computer Science because someone told them that those jobs pay well[1]. They had little-to-no passion for it, had no hobby-projects[2] and had nothing to show me that would demonstrate an ability to actually write code in the language we were seeking candidates for. On the two occasions we landed a candidate with no formal education in software development, I advocated for both of them (with strong disagreement from the other interviewers)[3]. [0] I often joke that anything I've written six months ago might as well have been written by someone else... someone else who doesn't know what they're doing. Part of that is because I strive to hone my craft. I want to feel this way about old code. But there's another side to this phenomenon. If I study the code carefully, my biggest complaint is usually that I've chosen an overly complex approach when there was a much easier way to do something. Further investigation usually yields that this much easier way only became possible shortly after or during the middle of the time that the majority of this code is written due to features being added to the language or runtime that weren't there previously. I'm not sure there's another industry where I can look at a product and think 'that design is just ... ugly' when it was cutting-edge 6-months ago ... maybe hair-styling? [1] Part of this was that the only job I had where I was regularly interviewing candidates was for a somewhat non-sexy IT development position at a large company who's primary business wasn't technology. It didn't naturally attract passionate programmers looking to solve interesting problems so we got the candidates that were probably the most appropriate for the job we were posting. [2] And by none, I mean literally no code to show me. I wasn't even expecting them to come with a few GitHub repos of personal projects -- A blog post describing something related to programming, a Pull Request to another person's GitHub repo or even a single Stack Overflow or a programming-centric forum of some kind would have been nice. Nope. And since I refuse to do white-board coding, that pretty much disqualified the candidate. [3] The first was somewhat reluctantly hired due to my persistence. I made the argument and backed it up with the code the candidate had showed off in the interview -- personal project code that was written very well. He was such a successful hire that I ended up doing many later interviews and the second time this issue came up, the candidate was hired on my recommendation without the required persistence. Both quickly became senior developers. Both, also, left after a couple of years for more interesting work.
- cyberferret 9y agoI am both a self taught programmer, as well as a self taught guitarist (both for over 30 years now), and I don't agree completely with that answer in the blog post. Self learning is great, and it will give you experience and chops in both disciplines, but at the end of the day, you will hit many walls that only a formal education (or a good teacher) can give you. I've written hundreds of (perhaps over a thousand now?) apps over the decades which are used in the real world to save/make businesses time or money. I would probably categorise myself as a 'fairly decent' programmer, but I know I would fail most whiteboard tests which have basic CS knowledge patterns. I often look at discussions right here on HN about machine learning or cryptographic patterns etc. and feel like a green newbie again because I find the technical conversations hard to follow. To bring it back to guitar playing - I remember when I was in my first band in high school, I had no idea how to play a guitar solo, but a session musician visiting the school showed me the pentatonic scale, and how you could move it up and down the neck to suit different keys. Mind blown. Pick any standard 3 or 4 chord song and I could play a semi decent sounding solo over it. Forget theory or all that Jazzy stuff - I was on a roll! But after many years, I discovered that I was simply playing the same thing over and over again in different keys. I wasn't really moving forward. I remember telling other guitarist that - "The _best_ thing I ever learned was the pentatonic scale, and the _worst_ thing I ever learned was the pentatonic scale...". I felt boxed in and felt that my skills had plateaued. It wasn't until a couple of years ago that I started taking lessons from an experienced guitarist, that I realised what I had been missing on by omitting basic music theory from my vocabulary. I was astounded by the power of learning the differences in scales, and using modes, triads, augmented chords etc. Stuff that I thought was too 'intellectual' or that I believed would restrict my creative freedom actually proved to be the exact opposite. It was the first time I experienced the concept of "the more you learn, the more you realise there is out there for you to learn". A kind of reverse Dunning-Kruger effect? TLDR: Self learning is great, but formal education is a force multiplier.
- thomastjeffery 9y agoI think it's worth mentioning that theory need not be learned in a formal setting. I, like practically every guitarist, followed the same learning pattern. Early on, I learned the pentatonic scale, so my noodling was more structured. Later on, I learned about scales and modes. Those two elegantly simple constructs are the most useful, extensible points of knowledge I learned, but I learned then from friends, and even from the internet. To contrast, through high school, I learned scales, and a lot of theory. I was forced to practice specific aspects of performance, learned about breathing, embouchure, sight reading, etc. I learned how to have a good ear, and work together with the rest of the band. The only things I learned from formal education, that I likely couldn't reproduce independently, were physical. Things like breathing, embouchure, etc. This, I believe, is where the analogy falls apart. In music, especially as a performance art, most of what you do is physical. That simply is not the case with software. Everything I learned about programming, I learned on my own. I learned theory and implementation. I learned several languages. I learned how to interface with the operating system. Programming is not a performance art; in fact, it is the opposite. The computer is the performer. You are the composer. The most wonderful aspect of writing is that it is only information, and with the internet, information is really available, no matter what setting, formal or not.
- cdevs 9y agoHere's the problem, thinking every job comes with a whiteboard test and needs you to know every sort algorithm as if you're going to build the next database. You know some Java and HTML and CSS? Great you'll either make it as a junior and become a awesome developer with those 8-9 hour days of new experience learning around other devs or you will flop. Maybe the question is how much does the industry generally tolerate as a junior dev? Forcing myself into the areas I hated or dreaded was what helped me the most. Realllly learn how the stack communicates.
- wcummings 9y agoBy applying? People almost never ask me about my education, I don't even include it on my CV anymore. If people are nitpicking education you've got a weak CV.
- flukus 9y agoYou're not wrong, but it's worth mentioning that employers care more earlier in your career. After a few years it's largely a non-issue, except for backwards places like banks and other large corporate environments. Even at the entry level though, a lot of graduates can't handle the FizzBuzz test, a self taught person that can probably has a better chance in the job market.
- banachtarski 9y agoSelf-taught programmer (as well as guitarist) also chiming in. I take umbrage at this article as it is pretty much not the advice I give to anyone. You being self-taught doesn't make you off the hook for learning operating systems fundamentals, data structures, distributed systems, etc. You still need to learn it and not doing so puts a hard cap on your capability, in the same way that not understanding scales and modes, fingerings, and chord shapes will hamstring your abilities as a guitarist. Build for sure, but don't neglect the fundamentals.
- doggydogs94 9y agoAnother option is to not work for somebody else. Write your own apps (I would do iOS because Apple customers seem to be more willing to spend money for apps). Maybe you will get lucky and one of your apps will go viral; then you will be on easy street.
- analog31 9y agoI'm a self taught programmer, but a formally trained musician. My observation is that you can learn practically anything on your own, but some skills are so rare among the self taught, that one might as well assume they won't happen. For instance, most self-taught musicians can't read sheet music at a useful level of fluency. That includes the vast majority of guitarists. Now there are plenty of playing opportunities that don't involve reading, and you'll generally do just fine, but if someone calls you for a gig that involves a lot of reading, you'll have to turn it down. Every town has a small cadre of musicians who enjoy this kind of work, and everybody knows who to call. Also, some instruments lend themselves to self-teaching. The one that I play -- double bass -- is physically dangerous if you don't follow a "correct" approach, and most people who try to learn it on their own, give up in frustration. Guitar is a great instrument for the self taught. You won't kill yourself trying, and it pretty much makes a pleasant sound right off the bat. As for programming, I use it in my job, but I'm not employed as a programmer per se. Programming is my secret weapon. I've never applied for a programming job. I work in a big enough shop, that if I have a theory question, or a problem that would really benefit from the opinion of someone who is steeped in theory, I just have to ask.
- thomastjeffery 9y agoLearning to play is different from learning to write. As a mostly self-taught guitarist, and almost entirely self-taught programmer, the most difficult thing, both in programming and music, is writing. The main advice is always to keep creating; but creating what? As a guitarist, I started out reading tabs for my favorite songs, and perfecting my performance. The most fulfilling experiences for me were getting together with someone, and improvising. Writing music is artistic, rather than functional, so improvising works. Writing software is not art. You need a problem to solve before you can write anything. But what problem do I focus on? The hardest thing for me was always finding a project to exercise my skills. Take SQL for example: If I want to learn SQL, and how to administer a database, I need data to put in it. I need a reason to query that data. I need a purpose, however trivial, to implement software, just so I can practice implementing software. That is the hardest thing to find on my own.
- pramini 9y agoThe essential building brick of programming is the function, simply because -- unlike the class/object -- it is also a perfectly valid basic building brick for a turing-complete axiomatization. Once you know this, you can [1] search for existing functions [2] compose new functions [3] and debug them, in order to solve the particular problem at hand. Is that what you learn at school? No. Never. At school, you will not do any deep sea fishing. You will only read about deep sea fishing. So, someone with a degree in deep sea fishing, is not a deep sea FISHERMAN at all. He is an avid deep sea fishing READER.
- Daviey 9y agoMy education has never got me my foot in the door, my reputation and demonstrable open source work has. Education was really only due diligence after they wanted to hire.
- _nalply 9y agoI am a self taught programmer who later made an engineering degree. The courses only told me the names of the concepts I already knew. This is in itself valuable because it gives you a language. In my youth I found my first gigs by good contacts (in German «Vitamin B»). After that it was easy because of «official» experience.
- CM30 9y agoAs a self taught front end developer, I got my first job as a paid internship after narrowly missing out on the original job the interview was for. It's an odd story, but it worked out none the less. Personal connections helped a bit too, especially since my second job was gotten purely because I knew someone working at the company (well, running the company) and it turned out they were hiring for the exact job I needed.
- thatwebdude 9y agoA common misconception with "self-taught" is that theoretical knowledge is always a black hole. This isn't true for music or development. There isn't anything keeping you from learning the Lydian-Chromatic Concept, or how to fully understand the 12-Tone System in music. There also isn't anything keeping you from learning key fundamental concepts taught in Computer Science. The information is out there. And most information is free.
- cagataygurturk 9y agoI want to highlight the difference between people who are self-thaught programmer but with engineering/math/etc. degree and people without any technical education. From what I see for engineers the life is easier even they did not study CS.
- nunez 9y agonetworking. finding a person that knows your work personally that is willing to bring you on for an interview. or craiglist. or that odd recruiting analyst that actually looks at your github and realizes that you can code
- haspok 9y agoBeware of self-taught people: there are diamonds in the rough, but in general, the problem is that practice does not make anyone perfect, _perfect practice_ makes someone perfect! There is a huge difference, and the problem is that people generally don't know what to practice and how to practice it - they may not even realize the existence of important topics! Of course, there are exceptions to this rule, but the average person can save so much time and effort just by getting a basic education (learning about big-O, for instance). It does not have to be formal education however, just try to be around people smarter and wiser than you and pay attention to what they are doing and - most importantly - why.