7 ms·
I have a CS degree and still consider myself self taught. I started programming as a kid, and learned mostly from books and coding. I only got my degree because
by city41 11y ago
I have a CS degree and still consider myself self taught. I started programming as a kid, and learned mostly from books and coding. I only got my degree because I thought it'd be necessary for getting a job.
- gravypod 11y agoI'm in the same boat right now. I have been programming since 12 and I'm getting a degree because I don't think I'll get a job without one (or more so my parents think that). Is this true? Can I start looking right now? Granted, I am not in the valley. I'm all the way in New Jersey.
- surfmike 11y agoA lot of doors will be closed to you if you don't have a degree. And college is a great place to make connections with like-minded people too.
- mgr86 11y agoAny advice for those who have a degree in an unrelated field, and has been coding since they were 11 and are approaching thirty. I'm considering other options sometimes, but feel this might be an issue. It wasn't every middle schooler who reads a book on perl for leisure.
- jwhitlark 11y agoThe book "Cracking the Coding Interview" is a huge help for getting through interviews. It's a real grind to work through, but worth it. You don't have to do all the problems, but make sure you do some from each section. Most business degrees can be useful, because you understand the business much better. Accounting actually turns out to be useful for distributed systems. Edit: It wouldn't have occurred to me, but I think Anthropology would be very helpful in understanding why systems were put together the way they are.
- mgr86 11y agoand here I am with an anthropology degree. In fairness, I am a developer for an anthropological research agency at a large university. That is a plus. I'll take a look at that book. Thanks.
- terminalcommand 11y agoNot sure if this helps. I'm also a self-thought programmer coming from a similar story -started programming at 10 and never stopped since- I'm in law school now, but I continue to spend nearly all my time hacking. Sometimes I think it's better not working as a programmer, because I'm very passionate about computers. I was depressed for a long time that I couldn't study CS. Then I realized, I can learn what I want freely. I have an entire life dedicated to computers. Although I secretly dream about inventing the next facebook, I mostly embraced the fact that I won't be able to get a formal education and a job in the field. Tinkering with computers is part of who I am. The rest is not in my hands.
- estefan 11y agoUse Coursera to get the education you wish you'd had.
- sokoloff 11y agoIt depends on what you're experiencing. For me, I'm self-taught from age 8 and got a degree in Mechanical Engineering as I thought I wanted to work in automotive. Did an internship for MB in Stuttgart and when interviewing for permanent positions was steered away from US auto by a Ford engineer. If I had his address, I'd send him a Christmas card and a nice gift every year. I've had zero issues finding work in computing. If you're also not finding issues, the advice is "do nothing and continue to ignore the line in any JD that says 'BS in CompSci required'". It's almost certainly not. If you are experiencing issues getting interviews, consider leaving your degree off or explicitly highlighting your self-taught nature and work experience. Anyone who was reading a Perl book in middle school for pleasure and has stuck with computing since then is almost surely a strong candidate, at least way more than sufficiently strong.
- filthydumbidiot 11y agoIn short, emphasize the skills and experience you do have. Apply and interview far and wide at all the companies that remotely interest you. A bit of background: I have been coding since an early age and hold an arts degree. I had no serious experience in the industry a few years ago, but had work experience in other fields and I had many independent projects to showcase. I have been gainfully employed in software for the last few years as I approached 30 myself. Now I feel somewhat established enough that the arts/self-taught background is not as big of a deal as it seemed when I was just trying to break into the field. They even have me performing technical interviews now for some reason, which I'm mentioning to show that I've now been on both sides of the table. My advice to you is to build your resume around the skills and experience that may be unconventional but are as relevant to the job you want as possible. Where most people would have job experience or education front and center, I placed a rundown of projects that detailed what techs I used to accomplish what ends and what results I got out of each project. These may have been even unreleased, work in progress personal projects (clearly stated as such), not for profit projects or websites or communities that I had a technical hand in creating, open source software contributions, and so on. Of course, if you don't have any projects to show at all then you should work on that before trying to get a job. But I assume you have some personal stuff, even incomplete and unseen by anyone, that you can showcase to demonstrate your skills. Links to working demos are a major plus, and you should always prefer concise descriptive text over just namedrop lists. I list work experience where I think it is relevant to the job in software. Any previous office experience, for example, can at least show that you know how to work on a project, meet deadlines, act professionally (arguable), etc. Highlight the transferable skills of your previous employment. Likewise, highlight the transferable skills of your degree. It often became a point of intrigue that I had this esoteric degree after we've talked in-depth about programming for an hour -- so don't think of it as a weakness. In your resume, stay focused on the goal, which is to get a job in software. Do not use a generalist resume as your software resume. Finally, pound the pavement. Do not wait. Tweak your resume and send it out often. I lost track of the number of companies that I've actually applied to, but in getting my first job I had in-person interviews (sometimes multiple rounds) at over 10 companies. I flat-out bombed some interviews. It didn't click in others. And sometimes it seemed like I was going to get the job, but with my untested background it was too 'risky' or I was too 'junior'. Don't let this stop you from going to the next interview. Embrace rejection and use it as an opportunity to learn. Try to strike a balance between quantity and quality in the jobs you apply for. Be directed and intentional in that you only apply to jobs that actually interest you and that you actually think you can do (so no "Sr. Dev", of course), but don't be so focused on one or two companies that you just sit around watching their careers page for an opening. Find a middle ground somewhere between "The One True Dream Job" and loading 100,000 copies of your resume into a biplane and dumping them over the city. In my case, beyond the usual job sites, I got a list of all the tech companies in my city in some local tech magazine's annual hottest tech company edition (or whatever it was) and went through the list applying to every single one that seemed like it would fit. And that got me my first job in tech, which has been utterly game-changing. Others have already mentioned that you need to practice that awful hurdle that is "the coding interview". So be sure to do that as well, and take every interview as a learning experience. Hope this helps.
- morbidhawk 11y ago> college is a great place to make connections with like-minded people I've heard this advice a lot but that hasn't been my experience. I stay in contact with quite a few of my co-workers from the past but I haven't stayed in contact with anyone from my time at the University. I was working and providing for a family while attending school so I didn't really have a lot of time to do anything other than the difficult CS assignments.
- khedoros 11y agoI suppose that everyone has a different experience. I'm still in contact with a number of people from my university years. I had a roommate who was more in your position, though (simultaneously studying and supporting a family). I'd imagine that his experience was closer to yours than to mine. He really didn't have time for a lot of social activity.
- ultramancool 11y agoYou might be able to get a job, but many places won't hire you without a degree. What this study shows is people who are at least partially self-taught, but if you look at the number here, it looks like at least 60-70% posses some sort of related degree.
- tzakrajs 11y agoCompanies say that they won't hire without a degree, but exceptions are made for those who have written substantial code for open source projects that are highly visible. It is possible, albeit difficult, to get around the very policy that you mention existing in most companies. A bachelors degree is only four years of education and is in a very controlled and contrived environment, it cannot make up for excellent achievement in the real world.
- city41 11y agoI still think having a degree is necessary. It lets you approach all job opportunities. But, it is true a lot of companies don't care about your degree if you show you're a good developer.
- tzakrajs 11y agoIt isn't necessary for a career in software engineering as you can tell just by looking at your colleagues. But I agree that going to school will make you a more rounded individual and increase the likelihood that you can write professionally and have a better understanding of the world that you find yourself writing code in.
- georgefrick 11y agoI'm not sure I would so quickly listen to the HN trends. There are a lot of people on HN who are younger and they like the idea that this would be a trend. You are allowing them to define the competitive advantage. You'll have to do the math and weigh the cost/benefits of your degree. Personally I think we're in a bit of a bubble/gravy train. The idea that programming will become the new automotive assembly line for self-taught labor is a bit of a stretch. A degree can impart many benefits (math, core CS ideas, subject matter classes such as speech theory, advertising, management, etc). While many people can make enterprise apps with direction based on being self taught; not many can really build something in depth. Boeing isn't going to let just anyone write aerospace firmware. So if you want to get a job quickly and milk this while it's hot - maybe you go for it? I don't think it's clear cut, and I like having my degree. I'm good friends with fantastic developers without degrees who work alongside me. In the long term; it depends on the competitive advantage you can get out of that time in school vs your peers extra experience in the field; as well as your goals.
- hajile 11y agoIs a degree objectively better? Developers generally fit into two broad categories -- those who learned to program on their own at age 10 or so and those who decided to pursue a CS degree because the job pays well or they like playing video games. 7 years of experience beats 4 years of college and 3 years experience pretty much every time. Unfortunately, a huge amount of CS degree time is spent dealing with those with no experience (We have remedial Math or English classes, why not remedial programming classes?). When I hit college (pursuing EE with CS on the side), I already had almost a decade of programming under my belt. I coasted through anything programming related (I'd already found and read books on the theoretical side of programming, so even those weren't that interesting). At the end of the college road, the people with college only were mostly worthless. They may be able to parrot the big-O notation, but they couldn't tell if a function would be efficient. They could talk about design patterns, but they couldn't handle systems more complex than a couple files. That's nothing against them, I (and others who had been programming from an early age) simply had a lot more experience in thinking in that way (and over time, most of them have become much better). We need to introduce programming to all children at an early age. Not because everyone can code (that's not at all backed by any studies I've ever seen), but because lots of kids don't find out that they have a knack for programming until college (or not at all). If most CS students had been programming since middle school, CS could drop a bunch of the remedial classes and focus on the finer parts of programming. Many so-called masters classes are within easy reach if you have some programming time under your belt. Companies would be a lot more willing to hire a dev out of college if they knew college was worth something. Until that happens, I don't think a degree is actually better.
- nxzero 11y agoSure, it'll impact you, but so will the loss of time, funds, etc., from attending to academic pursuits. Key is to find a good first job as soon as possible and leverage it to find your next job as soon as possible. After you're established a career path, the percent of opportunities you have access to will be less and less limited by your academic history. Generally speaking, my suggestion is to go to school; though that's not the same advice I'd give to my past myself either given the opportunity.
- atemerev 11y agoIf you have even slightest interest in finance and want to learn some quirks of the profession and related engineering skillsets (start with FIX protocol), you can start making a good deal of money in NJ/NYC. No degree required.
- sokoloff 11y agoIf you can get into a top 5 (10?) school, I'd absolutely go. It's utterly unfair (and probably not backed by actual facts), but the cachet from a top school is real. University is also a great time to have fun, develop relationships, and become a proto-adult. I'm not sure that 4 years of "head start" (by skipping college) is a good decision for the average 18-year old to make. By all means, if you have a great idea or a compelling thing that you're running "towards", that's fine, give it a go. But the default "go to a good school and get a degree in engineering, math, or comp-sci" is pretty sound advice for most. I had no idea (more precisely: the wrong idea) what I wanted to do with my life when I was 17. College gave me time to figure more of that out and I don't feel like I lost out, in fact quite the opposite.
- angerman 11y agoAnyone reading this and being in the same boat, intending to get a degree. Please do yourself a favor and consider getting a degree in Physics, EE, Math, ..., and do some CS on the side. Sure CS might be easier, but you pass up the chance to widen your horizon. EDIT: many will only study once; why not study something new? Even if tuition is free, why have someone teach you topics you might already be very familiar with? I'm not saying you won't learn anything new in CS. You very much will learn something new. But if you choose a related field with little to no exposure yet, you will learn so much more.
- ephemere 11y agoThat's an interesting mindset. As someone who is self-taught, I consider a degree to be a formality that I have to wait for because I move faster than this. The Internet is my chance to widen my horizons, if I want to learn physics or math, I can and I will, but a Physics or Math degree might not help me as much professionally.
- pklausler 11y agoAs I've mentioned before, I really prefer to interview and hire mathematics students over CS. It's much harder to fake one's way to a math degree.
- sitkack 11y agoThis thread overly focuses on algorithms, which are not necessary for the majority of coding. What is necessary is the ability to handle abstractions, purity and regularization of thought. Mathematics, Philosophy and Writing are just or more applicable as a skill than being able to please an Online Judge.
- estefan 11y agoAnyone reading this and being in the same boat: Be very careful with this advice. There are high-paying jobs out there who will only consider CS grads. Why cripple yourself professionally learning something tangential to what you want to work in? Anecdotally the majority of non-CS grads I've worked with haven't been anywhere near as good as CS grads.
- viperscape 11y agoI'm self taught too since maybe middle school, and did take C and C++ for giggles. I never got a CS degree though, since the math really was difficult. I consider my self a decent programmer though. It's amazing to me the strong link between engineering and programming. So much so that every job I've ever seen posted has included it as a requirement. It's a shame really