Author Topic: Employabilty of self-taught software engineers/programmers?  (Read 15318 times)

Aloysius_Poutine

  • Stubble
  • **
  • Posts: 127
  • Age: 2016
  • Location: canada
Employabilty of self-taught software engineers/programmers?
« on: October 16, 2012, 10:00:37 AM »
For those of you in this field: do you know anyone who has a degree in an unrelated field, and makes a (good) living coding?

I have always been interested in coding, but did a useless degree in social science instead. Now I need some real life skills. There are great resources online. Is the programming field a meritocracy--can I prove myself on my own and get employed-- or is one out of luck without a CS degree?
« Last Edit: October 16, 2012, 10:08:06 AM by MarkCB »

gdborton

  • Bristles
  • ***
  • Posts: 254
  • Age: 31
  • Location: Muncie, Indiana
    • Gary Borton
Re: Employabilty of self-taught software engineers/programmers?
« Reply #1 on: October 16, 2012, 10:20:30 AM »
While I was in school I knew a couple of guys that made some money doing freelance websites for people/small business.  What sort of programming are you thinking about?  Best practices are easier to learn/showcase in web development, and a good portfolio could go a long way to impress an employer.

rjack

  • 5 O'Clock Shadow
  • *
  • Posts: 90
  • Age: 60
  • Location: Philadelphia PA
  • I'm retired!
Re: Employabilty of self-taught software engineers/programmers?
« Reply #2 on: October 16, 2012, 10:21:50 AM »
I know 2 guys that make an excellent living as programmers that don't have college degrees. They are completely self-taught. They are both in their early fifties and they started programming in their twenties, so I don't know if this is a realistic option now.

Aloysius_Poutine

  • Stubble
  • **
  • Posts: 127
  • Age: 2016
  • Location: canada
Re: Employabilty of self-taught software engineers/programmers?
« Reply #3 on: October 16, 2012, 10:28:05 AM »
While I was in school I knew a couple of guys that made some money doing freelance websites for people/small business.  What sort of programming are you thinking about?  Best practices are easier to learn/showcase in web development, and a good portfolio could go a long way to impress an employer.
I'm thinking software development. I did freelance web stuff for small businesses during college, but I don't want to pursue that route professionally.

Thanks for your opinions and experience.

igthebold

  • Bristles
  • ***
  • Posts: 470
  • Age: 41
  • Location: NC Piedmont
Re: Employabilty of self-taught software engineers/programmers?
« Reply #4 on: October 16, 2012, 10:32:46 AM »
I am a freelance programmer, and though I got a CS degree I do not value a college education in itself when thinking about hiring.

There are two ways of hiring:
- knowing people to hire (directly or indirectly)
- accepting a sales pitch (usually a resume with accoutrements)

The former is a superior way of hiring, since it directly addresses the issue of trust, which is the biggest issue at play when making a hiring decision. Can this person do what he says (abilities)? Will he do good for the company (character)? All these questions boil down to trust, and when a colleague, contact, whatever says, "This guy will be a good hire," it makes all the difference.

The latter method requires the conveyance of trust via the sales pitch. Usually the sales pitch is a combination of resume/first contact, interview, etc. But in the end it's just a sales pitch, and if the hiring manager is going to buy (hire) he has to make a leap of faith. It's very hard to make that leap of faith when the things in the sales pitch aren't capable of being reduced to bullet points.

As such, the self-taught person just starting out is pretty much aiming to get hired via the first method, which is superior anyway. This means networking. Lots of networking. Going to meetups to build street cred with the other developers, going to business/dev type meetups so you can meet business types and build trust, attending startup events like Startup Weekend or other social type events, etc. It's a *lot* of work, but it pays dividends over time. Please also note that when you network, it's all about what other people do.. showing up at a function and presenting yourself all the time isn't what it's about.. remember, you're building trust, and understanding someone's problem and verbalizing it back to him does a lot to build trust.

(anecdote: I recently had to find more business due to a major project scaling back. In two days I had two more projects lined up merely by contacting people I knew and following up with others. Networking really does help.)

Of course, you also have to learn, and there are various ways to do that. A crash course in a consulting firm that provides lateral transfer training will get you both a bullet point and good networking. You can also apprentice at some consulting firms. Barring that, you can do some learning, contribute to open source projects, participate in so-called, "hack nights" where programmers sit around and program next to each other, etc.

In other words, it takes work to build up your credibility, but it's largely stuff you should do anyway.

Aloysius_Poutine

  • Stubble
  • **
  • Posts: 127
  • Age: 2016
  • Location: canada
Re: Employabilty of self-taught software engineers/programmers?
« Reply #5 on: October 16, 2012, 10:44:39 AM »
Incredibly valuable post-- thanks.

MrSaturday

  • Stubble
  • **
  • Posts: 138
Re: Employabilty of self-taught software engineers/programmers?
« Reply #6 on: October 16, 2012, 01:34:26 PM »
I'm a senior software engineer with no relevant education, but I was able to transition from hardware tech into engineering in the same company after repeatedly demonstrating my abilities.  It helped a lot that I'm in an unusual field where a well-rounded background is more valuable than specific programming skills.

salmp01

  • Stubble
  • **
  • Posts: 120
  • Location: Minneapolis, MN
Re: Employabilty of self-taught software engineers/programmers?
« Reply #7 on: October 16, 2012, 02:22:21 PM »
My brother is now a software developer.  He graduated from college with an economics degree.  He had trouble finding a job so in his free time he started programming.  He developed some very creative programs and brought them to potential employers.  They were impressed and he was hired!  He has now been working in the field for over 15 years. 

focusaurus

  • 5 O'Clock Shadow
  • *
  • Posts: 32
Re: Employabilty of self-taught software engineers/programmers?
« Reply #8 on: October 17, 2012, 12:16:00 AM »
I have a completely and utterly unrelated and useless degree, and have been making a great living as a software engineer for 11 years now. Many, many huge swaths of jobs (startups, web development, QA, etc) could not care less about formal undergraduate training. CS degrees are highly academic and highly divergent from current industry practices. The tools for self-directed learning today are also amazing. Check out http://codecademy.com, MIT open courseware, "learn to program the hard way", etc.

JJ

  • Stubble
  • **
  • Posts: 117
  • Location: On the road, Australia
    • A Philosopher and A Businessman
Re: Employabilty of self-taught software engineers/programmers?
« Reply #9 on: October 17, 2012, 12:43:03 AM »
I started life a a geophysicist.  I was so far away from using computers that I got my first job with a hand written application letter.  Turns out geophysics needs a lot of numbers crunched and the only sensible way to crunch them is with a computer.  The software didn't exist back then to do a lot of the crunching we needed to do so I got a manual on how to switch on a PC, then a crash course (about 20 mins) from my boss on logical constructs in software, then pretty well let loose.  A month later I had my first application which did some basic signal processing on a geophysics dataset.  The maths background from geophysics certainly helped with logical thinking processes that go into making useful software.  After six months I dropped the geophysics altogether and stuck with the software. 

And yes, I have made a nice living coding over the years.

There are different classes of software out there.  Some of them really need the rigour that you get from formal academic education.  For example, after 15 years banging out technical and line of business applications I know enough to not go near hard real-time control system software engineering.  The verification of design and testing to confirm system response times etc is not something you pick up from codeproject.com or joelonsoftware.com.  You wouldn't want the hourglass to pop up on a missile controller while the missile is hurtling towards the wrong target.

However, the vast majority of software development is for web apps, iPhone app, line of business software etc.  If it goes bad people don't die so self-taught is fine.  And to focusaurus' point, modern development methods for those classes of applications are not what is taught at college. 

Do spend the time to read up on the key principles.  Understand the performance degradation of O(n) v O(n2) algorithms - something that is taught in CS classes.  Also, spend time understanding software design principles and approaches (separation of concerns, DRY, MVC etc) and development lifecycle.  A little goes a long way.  A lot of folks spend a lot of time on getting around language syntax and libraries.  These are important, but if you spend 25% of your self educating time looking at the fundamentals of software design and development (independent of language and platform considerations) you will place yourself well ahead of most developers over a few years whether they have studied CS or not.

If you want to make serious dough in the world of software and you are thick-skinned look at sales instead.  You don't need any particular background to sell well and the chase is kinda fun.  Downside is not many sales guys have money mustaches so you may be influenced into spending up big in the bar.  A good sales guy can earn 3-4x a good software engineer.  A great sales guy can do that without giving the software development team any more grey hairs.

keith

  • Bristles
  • ***
  • Posts: 311
  • Age: 36
  • Location: Seattle/eastside
Re: Employabilty of self-taught software engineers/programmers?
« Reply #10 on: October 17, 2012, 02:10:16 AM »
Lots of good responses in this thread that have already covered the important pieces. Especially the part about how jobs are found via trust/networking. Thats the key.

I have a bachelors in Business (which I don't use at all).  I am a self-taught developer on a small team (5 people), within a big company.

I made it happen through the following:
1. Started at this company doing unrelated work, but made 3 or 4 moves to jump into the position I'm in now.
2. Time spent after work for study. I read books and started writing lots of code.
3. Continually took on projects that were beyond my current skillset to force myself to learn new skills.
4. Once practical programming experience felt natural, started filling in the gaps from what would have been in a CS degree (math, algorithms) - still a work in progress.

pepper

  • 5 O'Clock Shadow
  • *
  • Posts: 18
  • Location: Vancouver Island
Re: Employabilty of self-taught software engineers/programmers?
« Reply #11 on: October 17, 2012, 11:39:55 AM »
I agree with many of the replies.  In my experience in hiring programmers formerly in my work in industrial automation and real time systems and now in game development, I was always more interested in how the person thought and what they were capable of rather then their formal education.  The degree will look good on a resume if you are applying for a job and may get you past an HR screen but if you have a good portfolio and can demonstrate competence in the area you are applying for, you will get a chance to prove yourself.  That being said we were always very careful to ensure that any candidate had the basic technical background and was very competent, this is especially true in a competitive and technical area like game development and a high reliability area like real time systems.
Depending on the area you are interested in, the level of formal education you may need will vary.  If you are interested in less demanding areas such as web development, mobile apps or some types of business systems, then being able to demonstrate competence and previous examples of professional work will go a long way.  If you don't have any professional level work to show then you really need to build up some experience here before attempting to convince someone they should hire you.  Do some reading, take some online courses and practice, practice, practice.  Make sure you have some examples of work that you can show if you don't have any prior work experience to demonstrate your competence.  In addition some of the biggest assets you can bring to an interview is confidence in your abilities (coming from your experience), enthusiasm and a willingness to learn.  I was always more impressed with someone that was keen to learn and excited about the work then someone that was highly educated and knew it all assuming they both met the basic technical requirements.

Jamesqf

  • Magnum Stache
  • ******
  • Posts: 4047
Re: Employabilty of self-taught software engineers/programmers?
« Reply #12 on: October 17, 2012, 11:53:05 AM »
Turns out geophysics needs a lot of numbers crunched and the only sensible way to crunch them is with a computer.  The software didn't exist back then to do a lot of the crunching we needed to do so I got a manual on how to switch on a PC, then a crash course (about 20 mins) from my boss on logical constructs in software, then pretty well let loose.  A month later I had my first application which did some basic signal processing on a geophysics dataset.

Oddly enough, one of my largest clients are geophysicists, who did pretty much what you did - wrote their own number-crunching codes using their intensive knowledge of the geophysics and very basic knowledge of programming.  Got their business when I took one of their codes, which took several days to produce results, and got it running under 30 minutes.

There is (or can be) a lot more to programming than simple coding. 

cthulhu

  • 5 O'Clock Shadow
  • *
  • Posts: 27
  • Location: Somerville, MA
Re: Employabilty of self-taught software engineers/programmers?
« Reply #13 on: October 17, 2012, 01:52:29 PM »
As a Web/Middleware Support Engineer - I have not had a huge use for my Philosophy of Literature degree outside my convinction that Java is based on Plato's forms....I find it to be more of a meritocracy than most professions in regards to specific professional training.

My personal path was through the operations department, ops/help desk/data center work - where you talk to the people who do what you want to do in the course of the day while reporting/fixing issues - is a great entry path to the area if it makes sense for your target industry/position.

One thing i would add is to make sure your at home environment sounds professional in its scope and scale.  If you aren't bringing a degree to the table they are going to want to talk about the projects and work you do on the side.  You should, these days, be able to spin up a linux VM on your personal windows box, have a basic end-user ability to operate in a unix/linux environment, and a working knowledge of how your code would be deployed.  It makes you sound like much more of a hobbyist if you can't discuss the overall network/environment that you would expect your code to operate within - I'm not saying on an expert or admin type level but if you don't know how apache handlers affect what gets to your app, and the concepts of a java container (assuming its a jee app) etc - you sound much more like "someone playing with coding" (and yes i understand there are enterprise windows environments out there - but most aren't and i'm a linux/unix snob - and in the realm of IT being able to operate linux/unix is a sign of nerdiness that helps with painting the picture of yourself as an amateur expert).  there is a lot of geek street cred to be gained by describing a home server environment, far more than would be earned by dropping a school name from a degree, if you're interviewing with the right geeks

Al

Aloysius_Poutine

  • Stubble
  • **
  • Posts: 127
  • Age: 2016
  • Location: canada
Re: Employabilty of self-taught software engineers/programmers?
« Reply #14 on: October 17, 2012, 06:26:59 PM »
Such encouraging replies-- thank you everyone. I'm interested in mobile app development, and probably general back end web stuff. Not really sure where to go with that yet, but my plan is to just build some interesting projects as I work through codeacademy and other online resources. I'm planning to publicize my work through a social media presence and activity on github, as well as making contributions to open source projects (when I reach that level of competence).

igthebold

  • Bristles
  • ***
  • Posts: 470
  • Age: 41
  • Location: NC Piedmont
Re: Employabilty of self-taught software engineers/programmers?
« Reply #15 on: October 18, 2012, 06:58:59 AM »
Another good resource is Treehouse (http://teamtreehouse.com/). Disclosure: I know two of the developers there.

Also, it hasn't caught on that I know if, but http://knowitapp.com attempts to help you build credibility for autodidacts.. something that can be hard to do until you start to produce results.

shadowmoss

  • Handlebar Stache
  • *****
  • Posts: 1267
Re: Employabilty of self-taught software engineers/programmers?
« Reply #16 on: October 19, 2012, 01:24:11 PM »
See if there are any Linux User Groups around.  In Nashville I used to hang with them and was fast tracked with the young guys (mostly...) who were pushing the envelope.  Also, 2600 groups.  If you are in any area close to Nashville, Phreaknic is a weekend hacker/programmer con that is a lot of fun.  Look for other cons in your area as well.  These are the folks who are doing some cool things usually, and can help get you initiated into the culture.

strider3700

  • Pencil Stache
  • ****
  • Posts: 516
  • Location: northern BC
Re: Employabilty of self-taught software engineers/programmers?
« Reply #17 on: October 21, 2012, 11:06:14 AM »
Networking is definitely the way to go.  When I advertise looking for a programmer I'll receive 100 or more resume's to even the most introductory level positions.  It's not uncommon for there to be a dozen or more computer science doctorates according to their resume in the pile.  maybe 30 or 40% will have no degree at all.

When I do initial cull of the pile   It usually works like this

first  -  who was recommended to me by someone I know and trust.  If the resume is anything better then a napkin coloured on with crayon  they get an interview.
second - who has experience listed on their resume directly related to what I need.
third - education levels, locations, ...
forth - everyone else

So basically if someone didn't recommend you, you have no degree and have never done anything related to what I need and don't live in town you stand almost no chance of getting an interview from me.   The only reason location comes up is I live in a fairly small town and there isn't a ton of programmers kicking around.  Having said that there's usually a dozen or so graduating from the local university and sticking around each year...