14

I know that this question may not be appropriate for the intentions of this forum; but there is probably no better place for me to ask this. I live in the UK (just thought this maybe relevant) and I've recently been considering becoming a software developer as a promising plan for my career path. I know that there are a large number of people who have become great developers by self-teaching and/or attending intense courses (e.g. boot camps).And I know that it's going to be financially taxing for me and my family (see what I did there!:D) for me to attend a university course (although, not impossible; just really difficult).

I was wondering whether it's possible for someone, using limited resources (e.g. books, the internet, online courses and maybe even attending a boot camp) to become as proficient a programmer as someone who attended a software engineering course (if no, would you say that the difference in proficiency would be great enough for me to consider attending a university course?). How long does it take for you to teach yourself programming to the same level of standard as a university? (assuming that the answer to the previous question was yes and you're willing to work, say, 6-8 hours a day). Would they be equally desired by employers or will employers generally prefer people with actual degrees? (I can probably guess the answer for this one. But is the difference in employability great enough for me to, again, have to consider going to uni?).

Again, I apologize if this is the wrong forum to be asking a question like this (if it really is, I'd appreciate it if you could direct me to the right forum). I just couldn't find the right one and thought this forum seemed the most relevant. Thank you.

  • 5
    Why do you want to learn software development? In my experience people who are self-taught (and good at it) come from passion, so by the time they even considered going to uni already had some projects under their belt. – Tymoteusz Paul Apr 5 at 16:16
  • 4
    @TymoteuszPaul Im not disagreeing with your point, I was actually commenting on the "by the time they even considered going to uni" part of your comment :) All the best devs I know are self taught because its not a job to them, and some of the worst devs I know have good formal education but no passion. Op needs to be one of the former, not the latter. – Moo Apr 5 at 21:06
  • 2
    I'm voting to close this question as off-topic because it belongs on the Computer Science Educators SE. – nick012000 Apr 6 at 2:41
  • 2
    I'm voting to close this question because it's really hard to give an objective answer to this. You can learn pretty much anything through the internet. How long you'd take is very much dependent on what you already know, what exactly you want to know, how quickly you can pick it up, how focused your learning is and how competent you want to be at actually using the knowledge you gain. How easily you'd get a job without a degree is also very dependent on your personal situation, what your resume looks like, what kind of job you want, in which city, country or company you want to work, etc. – Bernhard Barker Apr 6 at 2:54
  • 3
15

I was wondering whether it's possible for someone, using limited resources (e.g. books, the internet, online courses and maybe even attending a boot camp) to become as proficient a programmer as someone who attended a software engineering course (if no, would you say that the difference in proficiency would be great enough for me to consider attending a university course?).

It is absolutely possible. Besides myself, I know many others who did what I did and self-taught their way into very successful careers, and that was before the era of StackOverflow, Wikipedia, where we had to rely on Altavista and mostly desolate IRC groups (I personally had the added bonus of not being a native English speaker, and I probably knew more php3 and c++ than English when starting out). Although what I found in common among all those people is passion, either for technology or for a problem they've solved with the tech - their gateway into the field at a usually young age.

As a result, usually, by the time it even came for them to decide university, they already had quite a bit of demonstrable experience actually creating software and solving real-world problems with it. And that is something that recruiters out there are looking for, as that's what software devs do - they solve problems and create software. Having experience in doing the job usually gives you a leg up over the competition.

How long does it take for you to teach yourself programming to the same level of standard as a university?

You cannot really compare the two. Every university is different, but from my personal experience, you will do a lot less actual coding at uni than you would do when self-taught. Instead, you will spend a lot of time learning the theory behind how the thing you just made it possible to function, algorithms and so on. Whether that knowledge will be useful in your career at all is up to you to decide, but I personally don't know a single developer who in real life had to develop compression/decompression algorithms, and yet I don't know a single university course that doesn't spend substantial amount of time teaching it.

Ultimately you have to look at how long the course will take, and what you could realistically achieve on your own in the same time frame.

For example, if you could land an internship, or maybe even some junior work instead of going to the university then, I think it's pretty safe to say, you will come out at the end of the time at much stronger position into your career as in this field, again broadly speaking, nothing beats hands-on work experience.

But if you were to just sitting at home and reading books all this time, you risk coming out of those years with nothing to show for it, and that's an outcome almost certainly than going to the university.

I can probably guess the answer for this one. But is the difference in employability great enough for me to, again, have to consider going to uni?

It really depends on what you will do with the time. If you come out of self-learning with nothing to show for it, besides having read a few books and writing a hello_world, then definitely at least finishing uni is going be a much better choice. But then if you will spend that time contributing to many open source projects, maybe even starting your own and showing that you can actually deliver a project from conception to a product, on your own, with no supervision - that's a story that will open you many doors.

It's also as important to point out that nowadays having a rich GitHub profile is definitely a massive door opener, and while there are still companies that will reject non-diploma candidates, there is certainly a lot less of those than there were 10 or 15 years ago. Back then you truly struggled as a self-taught developer to even get an email response, while nowadays very few companies (again, in my own experience) would drop a solid candidate because he doesn't have a degree.

| improve this answer | |
  • 2
    "there is certainly a lot less of those than there were 10 or 15 years ago" Citation needed. My personal experiences in Australia are exactly the opposite; companies just want people that check boxes on lists since they don't want to spend time training their employees because they're terrified of turnover. – nick012000 Apr 6 at 2:38
  • @nick012000 My impression of the Australian market is that most large employers are still quite conservative and old fashioned. There's a reason successful aussie startups move their HQs to SV – Fred Stark Apr 6 at 3:39
  • 1
    If you want to gouge your chances - almost everyone who made it through the first year of university at my time made the degree and landed a decent job. Now compare this with the assumed number of how many people want to learn to code on their own and never really start, or quit halfway through or don't get it even after 3 years... Going to university is almost a guarantee to get it, if you see it through. – Falco Apr 6 at 8:33
  • 1
    @Falco You can also look at this the other way. At software companies I've worked at, usually ~50% had a CS degree. Another 25% a degree in something else. The rest didn't go to university. – Nico Burns Apr 6 at 10:02
  • 2
    @Pac0 i assume he means Silicon Valley – Ivo Beckers Apr 6 at 12:19
3

Good choice of trade to learn! Software been berry berry good to me. It can to you too.

How do you learn? By doing.

Work on an open-source project in an area that interests you. Get a Github account and fly at it. Many projects desperately need people to write documentation: how-to and so forth. So, if you need to learn about a project before you start writing code for it, that's a good way to start. And, you'll already be known to the maintainer when you offer code.

Read lots of code (another benefit of open source).

Create your own little public Github projects to do things you, or somebody you know, needs done. They're useful because they can serve as a portfolio when you're looking for jobs.

And, knowing how to use the Git source code control system that's at the heart of Github is vital to putting bread on your table with software.

Pluralsight offers top-quality video training courses. They've made them free during the current health crisis. Watch some. There are other vendors of good training materials, like Lynda.com and OReilly.com.

Free Code Camp has lots of good stuff.

There are plenty of minitutorials on the intertoobz. They're of varying quality. But that's not a problem, because software professionals need to be able to tell good from bad quality.

And, all you need to do this stuff is a computer, an internet connection, time, and patience. Most of the good software-developer tools are free. Microsoft Visual Studio Code is a good one. So is Eclipse. I like the Jetbrains tools (intelliJ, Webstorm, Pycharm, etc). They aren't free but can be had for short money if you buy them for yourself.

If you have the time and money for a bootcamp, go for it. I know people who have landed excellent jobs after bootcamps.

Just keep at it and you'll get good.

| improve this answer | |
2

I was wondering whether it's possible for someone, using limited resources (e.g. books, the internet, online courses and maybe even attending a boot camp) to become as proficient a programmer as someone who attended a software engineering course

That depends on you, your abilities, and your preferred learning style.

Some folks learn well by reading, others learn well by seeing, and others learn well by doing. Often, a combination of all three are best.

Would they be equally desired by employers or will employers generally prefer people with actual degrees?

Well, there's a tremendous difference between taking a single course, reading some books, attending a boot camp, and attaining a degree from a university.

None of the approaches you mention would be equally desirable for any of the employers where I worked, unless they came with some professional experience.

That said, there are always some employers that don't require degrees and would still hire someone with no experience. You would just have to look harder and likely accept a lesser position.

| improve this answer | |
2

Throughout the early part of my career, I managed to get a succession of jobs, each lasting several years on the basis of prior experience, except the first (1987-1989) which was just a lucky break.

I can tell you from that (nearly 15 years of) experience that it would have been much easier and better paid to have had a professional qualification (degree) going into it.

Would they be equally desired by employers or will employers generally prefer people with actual degrees?

Depends on the company and the individual hiring manager. A degree can be a useful filter.

I can probably guess the answer for this one. But is the difference in employability great enough for me to, again, have to consider going to uni?

Yes. Having a degree means more opportunities and after job 2 or 3, usually better earnings (I can't be bothered to google specific stats). I can tell you that not having a degree does mean a lot of doors slammed in your face. It also greatly depends on both the course and the institution.

And I know that it's going to be financially taxing for me and my family

I don't see why. You live in the UK and I am assuming you have done so for several years. ALL UK academic institutions offer student loans of up to about £9k to cover tuition fees and a maintenance grant (another type of loan min £4.5k) to cover daily living expenses. Most also have 'all in one' accommodation for (at least 1st year) students. You can maximise this by learning how to save money, e.g. learn to cook from basic ingredients; don't get groceries delivered or buy from premium supermarkets.

I realise that this is a slightly facile reply, but obviously I have no idea about your exact circumstances. I do have a 19y/o son who is going through this right now.

I was wondering whether it's possible for someone, using limited resources (e.g. books, the internet, online courses and maybe even attending a boot camp) to become as proficient a programmer as someone who attended a software engineering course

Mmm. Maybe. Possible, but not necessarily the best option, as it depends on the someone and depends on the course. I'd say though that the best teacher is experience and if you can find an entry level job, that would be better. If you're going to do online, maybe part time Open University, which a friend of mine did in the nineties and became very successful. Still costs money though.

How long does it take for you to teach yourself programming to the same level of standard as a university?

Again, this depends much more upon aptitude than course duration. Some people even after several years of courses and/or jobs still don't get it. This single biggest issue with self taught programmers is they think they know it all, and this gets worse with age and experience. To give you a straight answer, probably a couple of years, but you'll still be learning and hopefully improving after that. Longer if you're only doing it for a few hours a week.

| improve this answer | |
  • 2
    You are making quite a lot of statements that are not really supported by anything, and yet are very damning. For example: "usually better earnings (I can't be bothered to google specific stats). I can tell you that not having a degree does mean a lot of doors slammed in your face". While this was extremally true 10+ years ago, it is less and less of a thing as far as I can tell. And SO survey blogs to a point agree that there are more important points of focus: stackoverflow.blog/2016/10/07/… – Tymoteusz Paul Apr 5 at 22:06
  • 3
    Similarily saying " This single biggest issue with self taught programmers is they think they know it all, and this gets worse with age and experience." without anything to back it up is quite irresponsible. Do you have any proof to back it up, besides that you feel like it? – Tymoteusz Paul Apr 5 at 22:07
2

Yes is it! In fact I would say I learned most of my main programming skills by myself or at least not in an academic setting. University will teach you theory most of which you won't actually use. In today's tech world I would say an extremely valuable skill is knowing HTML/CSS/JS all my jobs over the past 14 years have required those skills in some way or another and guess what, University didn't teach them! What University will teach is things like analysing runtime complexity of algorithms, Mathematics ... etc. There will be a chance to learn programming but you can do that for free outside the Uni.

You can use a site like https://www.codecademy.com/ even though it charges money it's hardly anything compared to the money you would spend on Uni.

I would note though that without a University degree or a bootcamp certificate I think the vast majority of companies would not hire you. Why? Well please bear in mind that these are not my opinions just something that I have observed from both side of the hiring table:

  • Without a qualification how does the company know you are competent? This is a big one, quite a few hiring managers will want a guarantee that you have completed a minimum amount of schooling. It's nonsense but if there are 2 candidates and one has some qualifications and you don't then most companies in the UK will pick the candidate with the qualification(s).

  • Gatekeeping, I've heard from a few developers that the fact that they had to go through a 4/5 year University course means that they expect that from candidates. Why? well I guess some devs spent a lot of money on their schooling and so if you got in for free they feel cheated.

  • Work experience, all new programmers will find this difficult but it's especially difficult for self taught programmers. Generally now work experience is given through things like summer internships which are part of the University programs. The Universities know that most businesses look to them to get undergrads in to do work for them for very little money. Without any experience most companies will just straight up bin your CV. This is a huge barrier to entry and probably one of the worst practices in the industry I've seen. I went to Uni but I worked at B&Q whilst I was at Uni rather than take any summer placement which meant I personally suffered from this.

That's a main sample but those are the big hitters really that are difficult to overcome. It sucks but the programming / tech industry in the UK is a gated community so you can be a programming god but you might find no-one will hire you. Likewise a lot of highly paid programmers are barely competent. Once you get in though you are gucci !

| improve this answer | |
0

For free, download the iTunesU(niversity) App which has university courses about computer science, iOS development, etc. , created by real universities in the USA and OpenUniversity in the U.K. I took Psychology 101 and Chemistry 101 which were actual university courses (I’ve done CS and software development 35 years ago), and looked at the Stanford iOS development course, looked absolutely fine to me. Take that course, do a project at the end of it, find a CS course to accompany it, and you should be doing reasonably fine.

Why this path? First, you avoid places that do nothing but exploit people who want to get into software development. Including places that make you sign a contract to hand over a percentage of any future income.

Second, no employer cares if you contributed to some open source project because nobody can see what your contribution is worth. If you create your own project after this course, producing a working application that does something useful, that is something that will make people give you an interview.

| improve this answer | |
  • 1
    This doesn't really answer the question whether it's worth doing, just some pointers about how. – Tymoteusz Paul Apr 5 at 21:16
  • @TymoteuszPaul "...and you should be doing reasonably fine." This isn't a great answer, but it is an answer. – Sneftel Apr 6 at 8:25
  • 1
    @TymoteuszPaul Seriously. Do you think I would have posted this answer if I thought it wasn't worth doing? – gnasher729 Apr 6 at 8:31
0

In uni you will probably learn more complex algorithms and "rarely implemented IRL, due to exists in a library/framework and just use that".

However I think by solving these you learn to break down a very complex problem, coding with a rigid specification in mind, unit testing. And some basic understanding of the foundations of what you are using. I learned basics of gates and microprocessors; discrete mathematics, linear algebra and assembly language and a lot of other things. Although nothing I use daily as a Java developer some knowledge of what happens in a clock cycle is valuable. I would however not recommend learning it if you are studying home with the ambition of getting out and working as fast as possible.

Focus on coding and see if you like it at all.

Another suggestion is to find a "12-week Software Developer Course" or something similar. Although they might cost money, you will get done quicker and what is more important you will get a network of people that will help you find a job. Usually the organiser of the course will also work as recruiters so you get a direct link into the industry and will be more employable with some kind of certificate (If you are performing ok).

I don't expect anyone to be a full fledged programmer by the end of such a course, but if getting into the industry is more important then this could be an alternative or at least a starting point.

TLDR; You can get to the same level as university, but I think it will take longer. If you want to change career, focus on coding and try to change ASAP in order to get rolling.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged .