5

I have a Bachelor's of Arts in Creative writing and would like to have the sort of opportunities available to people with BSc in Computer Science. Database development, software development, network development, and etc are career opportunities I would like to have access to within the next 5 years.

Right now, my options seem to be: Go back to school and get a BSc, find a MSc in CS that will accept my BA, attend code bootcamps, or self-teach.

  • BSc option has the advantage of giving me exactly the opportunities I'm looking for, at a financial and temporal cost. It will also be difficult or impossible to do this in a timely manner with a full time job. Will likely have to take out a loan and go full-time student with part time work.
  • MSc option should give me access to similar opportunities that a BSc would and should take less time, and possibly be cheaper, however it is difficult to find a program that will accept BA applicants, and finding a way to balance this option with full time work would also be difficult. Would likely have to take out a loan and go full time student with this. Possibilities of doing an online program while living in a low-cost environment (Asia, etc) exist, and are worth investigating.
  • Code boot camps promise low-cost, little time investment training, with high hiring rates. However, horror stories abound, and these will not be as well respected as a degree.
  • Self-teaching has the benefit of allowing me to work full time and learn at my own pace, but the education will be inconsistent, and I will always be considered second-class to someone with a degree.

Each option has many facets, advantages, and disadvantages, and this is what I am hoping to clarify. For example, would it be better to be working while taking an online MSc, which may not be as respected and will take longer? Or to put my head down for a year as a full time student and then start working right away? What sort of programs out there accept BA students? Should I study abroad (as an American), which can often be cheaper (schools in Taiwan waive tuition for foreigners, for example)?

  • Is there a reason for not going into technical fields like technical writing, testing or technical support that could be quick ways into IT? – JB King Sep 8 '15 at 1:04
  • Money/enjoyment reasons. I've self taught over the last 2 years and have been interested in tech since I was a child. After getting a taste of the professional world I found I enjoyed the technical aspects of my role far more than any other aspects (programming an Excel spreadsheet over going on a client meeting, for example.) Most of my tech friends are looking at ~60k/yearUSD starting offers out of school, while the average salary in my profession is 40k/yearUSD. Having a technical skill (programming) seems to offer more opportunities than soft skills (writing, sales ability, etc). – Caleb Jay Sep 8 '15 at 1:39
  • Consider retitling this to something like "How can I break into the IT industry without a technical education or experience?". I'm still not sure that's a great fit for this site but as-written your questions is asking for career advice which is off-topic. – Lilienthal Sep 8 '15 at 11:18
  • @Jack while I believe it's unfair to summarily dismiss 4 years of study as a waste of time, the reason I didn't pursue computer science originally is I didn't think I was smart enough. Having overcome some of my own deficiencies in focus, discipline, and general mathematics, I've found I'm fully capable of studying the field. In short, I had been told by teachers throughout my life that because I do well in my English classes and poorly in my math and science classes, I should not pursue a BS. I was young, impressionable, and believed them. – Caleb Jay Sep 8 '15 at 13:47
  • @komali_2 good luck. Your current education is something. Take a algorithmic online course on coursera to learn good habits. Anybody serious will be impressed by someone who focused on self development for a year without being babysit-ted by an university. Forget the naysayers. You can do it. – UmNyobe Sep 8 '15 at 15:21
3

5 years is a lot. From your question it seems you are targeting programming positions. If your goal is to find a job and consistently stay employed, then you need both verifiable credentials and a minimum amount of software engineering skills.

Make your skills visible. In your face visible. You need to devote a substantial amount of time to contribute to public projects which are valuable in term of software engineering. This can only be done if you enjoy programming, because the immediate monetary\recognition gain is close to zero. If you have a full year with 8h per day at your disposition you can pull it off.

  • Off course self learn. I graduated from a top university but I still take online courses. Sometimes in domains which have nothing to do with programming. I compared the online and offline course for scala and they are nearly the same (lectures, assignments, TAs).
  • Pick a soon to be hot language and get good at it. For instance, Swift, the new Apple programming language of choice which may replace Objective-c. There is nothing more efficient than surfing big waves better. You have the advantage over programmers which are already good\comfy with their existing frameworks and don't put a lot of resources in anything else.
  • Likewise avoid the ecosystems full of mediocre programmers or just saturated. It will be incredibly difficult to assert yourself as a good php\JEE programmer.
  • Submit patches to open source projects. Getting patches accepted at some notorious open source projects can be very difficult. Succeeding doing so raise you above the level of fraud. This is can be useful when you target the industry related to the project in question (eg ffmpeg and multimedia processing)
  • Solve quizzes sponsored by companies. A tech recruiter contacted me and all people who made successful submissions to several of their quizzes.
  • Contribute to stack overflow : While you are learning also look in providing answers. You will be in direct competition with skillful people, still hard.
  • Once you have some evidence that you are competent, network. Your friends can provide you access to opportunities you will never find by your own. Tell them your story while you are doing it. They will talk about it. They will think about you a year from now when the next position is being discussed.

Edit to address comments:

  • Nobody know what the next hot language is. Do your research. If you on the self learning route, you absolutely need good foundations like algorithm. You may want to learn either java\C++\python. But at this point you have minimal competitive advantage over a university graduate. You need to take risks. If from your research you learn Apple is releasing a new programming language called Swift, give it a go. Right now not a lot of students are learning it in classrooms.

  • Of course programming is hard. This is not about learning IT. This is about getting a job. And my post is about what may increases chances if someone chooses the route of trying to get a job without a degree, a programming job. I am not downplaying the importance of a degree. You are not going to submit patch in the first day. Maybe it will be in two years. But once you have some skills you need to prove to other that you have skills; that's where patching\quizzes\networking come to play. If you don't have a long term strategy you cannot devise a good process and learning will be overwhelming. You better go give a pile of cash, sit down 4 years so they hand you a degree.

  • 1
    This advice is so nuts i cannot believe it. Learning IT is hard... It is frustrating, and i have no idea what this answer says. Submit patches to open source to learn??? Answer company quizzes, to learn?? Pick a soon to be hot language (how?) and learn it... How? Self learn?? If self learning was a reliable way to learn, IT would not be a well compensated career. – bharal Sep 8 '15 at 19:46
  • 3
    Point 2&3 are terrible advice. Predicting the next hot tech (including languages) is virtually impossible, choose the wrong one and you waste lots of learning experience. If you want to be sure to land a job, pick a well-established language. It might be more boring, but job opportunities are more real also. – KillianDS Sep 8 '15 at 19:56
  • @bharal is the goal to learn it? no. The goal is to get a job without a degree. – UmNyobe Sep 8 '15 at 20:39
  • @KillianDS fair point. But some languages have bad rep. Some "well established languages" are known to attract a lot of self-taught programmers. How can somebody emerge from the php crowd now without other credentials like fcbk engineer\ivy league graduate? If you have an answer to that I will be glad to read your answer. High risk high reward. If I was starting programming now, I would learn swift. – UmNyobe Sep 8 '15 at 20:51
  • @UmNyobe I have to agree with KillianDS here. The validity of "hot tech" aside, high-risk high-reward can be a valid strategy but it's not one that I would recommend for a recent graduate. Your answer also doesn't make much mention of the fact that it's risky so I'd almost call it dangerous advice. Your first two paragraphs are spot on but I don't agree with all of your bullet points. If self-teaching for a year is an option then there are probably any number of legitimate year-long educational programs that will be more useful and have more recognition. – Lilienthal Sep 8 '15 at 21:50
8

I can't recommend what to do for you because different people have different learning styles, different goals, different constraints. That said, here is some information about this common sort of scenario you can use to make a better decision.

Oh, and before I begin, the most efficient way to get a job is (as always) to know someone. If you can do the job, and know someone at the company who knows you can do the job, that sort of social networking is always the quickest and easiest way to get a job.

At least in my area (US), you really have two solid options. You can go back to school to get your bachelors in computer science. This is long, costly, and depending on what school you go to, not very educational. Or... you can not. Code camps will not get you jobs. Masters programs won't take you unless you can show you know your stuff... which is what you'd have to do to get a job. Online programs are not widely respected.

Honestly, many places will turn you away for not having a CS degree. But even though it's not the dotcom days, there's a decided lack of skilled programmers. If you can do the work someone will (eventually) give you a shot. You might need to take a crappy job to get your foot in the door, but once you're a "professional programmer" a lot of the roadblocks go away. Assuming you can do the work that is. If they fire you a few months in, that's no good.

So, the main question is - can you do the work? Do you need the structured environment of a university to learn to do the work, or can you learn on your own without deadlines or direction?

  • I'm sure I can learn the skills necessary to do the work between edx, udacity, online resources, and working on git projects and my own portfolio. My only concern is missing out on fundamentals this way, and if the time invested would have been better spent just going to school so I have the piece of paper to show for my ability. – Caleb Jay Sep 8 '15 at 2:57
  • Agreed, In my area (India) if you have some skills, you can get work at startups. work hard and develop your skills. – Vikas Rana Sep 8 '15 at 5:00
  • 2
    @komali_2 - in my experience as a self-taught programmer, I know far more of the fundamentals, far better than people who learned just enough to pass a test; and then promptly forgot it all. – Telastyn Sep 8 '15 at 11:37
  • @Telastyn I'm not sure what your claim proves. We can always set the bar at the low end of any subpopulation under investigation and conclude it's useless to do X. – Chan-Ho Suh Sep 9 '15 at 16:39
  • @Chan-HoSuh - I never asserted that conclusion. Nor did I set the bar as the low end of the population. This is 20 years of professional experience saying that the overwhelming majority of classically trained professional programmers remember very little CS fundamentals. – Telastyn Sep 9 '15 at 17:08
3

Go to school, get a degree.

I'm shocked that nobody has told you this yet.

A lot of rot about "degrees are useless" and "self learn" ~ IT is hard, dude. If IT was easy, it wouldn't be well compensated. As a tech person, it is easy for me - now - to self learn a new language.

But if I tried that without a decade of tech skills, I'd get nowhere fast.

Right now, I work at a bank you've definitely heard of - I work with a bunch of guys, we're well paid. I'm awesome, but this answer isn't about me - it is actually about my boss.

See, he didn't go to uni - he, believe it or not, spent about 8 years in a band and managing a club.

Then he realised he wasn't going where he wanted, and so, probably feeling pretty stupid, he went and got his degree.

I cannot stress to you how much easier getting a well paying job in IT will be with a degree. While it won't guarantee success - like everything, you have to work at IT - it will help you no end.

Learning IT is no longer "knowing some HTML and CSS" ~ please do yourself a favour and get a degree. I'd strongly recommend a full time degree at the best school you can get into.

Failing that, a part-time degree, at the best school you can get into.

In IT, (right now, anyway), the extra cost of a better school will be well compensated for over time.

EDIT

Also, consider that part of what a degree gets you is avoiding the split that happens when people apply for jobs. All the non-degree-applicants go in one pile, degree-holders in another. If nobody with a degree is making the cut, then they'll look at the non-degree holders.

  • From your perspective, what would be more valuable in my case, a BSc or MS? At this point the BSc would be more expensive because it would involve more time not full-time working. I don't mind putting the work in, I just like to go into it with as much assurance as possible that it's a financially sound decision. Full time school involves loans, etc, and as I'm currently debt-free, it is a daunting decision to make. – Caleb Jay Sep 8 '15 at 20:04
  • @komali_2 Go full time, get the degree sooner. You'll earn money (and get raises &experience) faster that way. Get a BSc if the MS schools you apply to are not as good as the BSc ones you can get into. Consider going international if you can get into a top school of any country - a top Polish (or whatever) school is easier to get into than a top US school, but the quality won't be too different. While studying, try and get some work at a startup, which won't pay well but will give you some "IT" experience ~ the work should not distract from your studies. – bharal Sep 8 '15 at 20:14
  • @komali_2 i will add that don't see the costs you're enduring now in too harsh a light - compared to the rates you can earn (if you're good at IT) after a few years, those costs aren't high at all. – bharal Sep 8 '15 at 20:18
  • Thank you, I will do some more investigating, particularly abroad as it could save me money and has the added benefit of being more exciting, which is always nice. Having lived in Taiwan before, I was looking into some programs there, the advantage is they often waive tuition for international students and the bar to entry seems to be low. I have some concerns about whether such a degree would be respected and the quality of the education, but worth researching anyway. – Caleb Jay Sep 8 '15 at 20:22
  • @komali_2 good place to start researching is to ask HR and recruiters for companies you want to work for what they think of a degree from whatever school you're thinking of. – bharal Sep 8 '15 at 20:24
2

I have a Bachelor's of Arts in Creative writing and would like to have the sort of opportunities available to people with BSc in Computer Science. Database development, software development, network development, and etc are career opportunities I would like to have access to within the next 5 years.

Short of acquiring a BSc in Computer Science, you are unlikely to have the same opportunities immediately.

But your 5 year time horizon gives you lots of possibilities.

BSc option has the advantage of giving me exactly the opportunities I'm looking for, at a financial and temporal cost. It will also be difficult or impossible to do this in a timely manner with a full time job. Will likely have to take out a loan and go full-time student with part time work.

Perhaps. If you worked hard enough and were smart enough, you could probably get a BSc in 5 years of evening and/or part-time courses, while working full or part time to finance the courses.

Many colleges will accept some of your BA courses toward fulfilling your BSc electives - thus reducing the number of new courses you would need.

MSc option should give me access to similar opportunities that a BSc would and should take less time, and possibly be cheaper, however it is difficult to find a program that will accept BA applicants, and finding a way to balance this option with full time work would also be difficult. Would likely have to take out a loan and go full time student with this. Possibilities of doing an online program while living in a low-cost environment (Asia, etc) exist, and are worth investigating.

This is a possibility. As you point out you would have to find an MSc program that would accept your undergraduate courses.

Once again, if you are motivated enough and smart enough, this could work. And you'd end up with a Masters degree, rather than just another BS degree.

Code boot camps promise low-cost, little time investment training, with high hiring rates. However, horror stories abound, and these will not be as well respected as a degree.

I haven't heard good things about such boot camps or "get into the industry quick" schemes. For me, I'd steer clear - your mileage may vary.

Self-teaching has the benefit of allowing me to work full time and learn at my own pace, but the education will be inconsistent, and I will always be considered second-class to someone with a degree.

If you haven't self-taught yet, you should be doing this anyway. That won't get you a degree, however. And you are unlikely to get "the sort of opportunities available to people with BSc in Computer Science this way, as your stated was your goal.

On thing you didn't mention is to try and leverage your writing credentials. Some companies hire writers to work with the tech groups (documentation, help files, user manuals, etc). It's often easier to transfer to a different group within a company, once you have some product/domain expertise under your belt. And some companies offer tuition reimbursement as a benefit.

Don't neglect your personal and professional network as way to get introduced to the kinds of people who could hire you for the position you aspire to.

Remember, it only takes one hiring manager to have confidence in you - and you can get there many different ways. Any of the above could work, but none are going to be easy or guaranteed to succeed. It's probably more a matter of perseverance and hard work, than one of efficiency at this point in time.

  • Thank you for the response. I am self-teaching via MOOCs such as CS50x, the "Learn _ the Hard Way" series, and various programming books, but I find it difficult to get down the knowledge I'd like to when I'm spending most of my time in the office doing something completely unrelated. Impatience is driving me to consider living low-cost and seriously self-teaching for a stretch of time. On internal transfers - what can I do to sell myself once I'm in a company as a competent programmer? Constant break room networking? – Caleb Jay Sep 8 '15 at 19:36
  • I understand where you're coming from, I appreciate your guidance. I'm thinking now to start looking into more tech-oriented roles that perhaps I will be qualified for - such as tech support, QA, or help centers, and then shifting over where I can. – Caleb Jay Sep 8 '15 at 19:46
1

First of all - congrats and "bon courage" for your career change decision. Having a degree in Creative Writing is not a disadvantage at all and I believe you could actually profit from it. After all, computer science is all about creativity. Even the most "boring-looking" database query could be creatively solved. And you can totally have fun with it.

That being said - I have a degree in CS, so clearly I am slightly biased. But what I currently do, I taught myself (iOS development). The main thing, as with anything, really - is to put in the hours. Be persistent, sit on it and build things. We have this amazing community on StackOverflow, that will tell you everything you need to know (and even more!) to not only be good, but also great.

There are many great sources out there, such as CodeSchool, Lynda, Khan Academy, Coursera etc that could give you some theory background (especially the algorithms class) but that could wait a little while after you've picked some basics. You could also do TopCoder challenges to have the feeling of solving problems under pressure.

My main recommendation? Be patient, build stuff, dig deep in documentation and SO, start from scratch regularly and most of all have fun!

  • Cheers to your bon courage. My only concern is that though I am on the path to self learning, my anecdotal evidence seems to show that non degreed programmers arbitrarily get paid significantly less than degreed ones. Since this is a long term career decision, I'm certain it would balance out 6-10 years down the line, but I don't want to be selling myself short in terms of opportunities. – Caleb Jay Sep 8 '15 at 11:26
  • The question is - what makes you a great programmer? In my opinion it's: critical thinking, patience, analytical thinking, open-mindedness and team work. I don't remember studying these subjects neither in my undergrad nor in my grad school. I do not have the data to support/contradict the statement about the salaries, but all I can say is - have confidence in yourself and if you make great things happen they will be rewarded by fair salary. Set up a GitHub account and post your code for people to see. If you'll have a visible progress there, there is no question in your abilities. – Michal Sep 8 '15 at 11:40
  • To add clarity - I did gain (I hope) those skills also through classes at school, but we didn't have a class called "critical thinking" per se. But that goes to you studying certain classes in your CW degree that indirectly gave you these traits. Especially patience, right? :-) – Michal Sep 8 '15 at 11:42
  • 1
    I appreciate your responses with this. To be perfectly honest, even if I switched into programming making exactly what I make now, I would be happier for it. It's just my time as a recruiter that causes me to seek the degree - I've never dealt with a company that didn't toss out a resume outright if it didn't have an MS or BSc. There may be some value in reaching out via linkedin and blogs to degreeless success stories, I'll give it a shot and consider that route. – Caleb Jay Sep 8 '15 at 12:31
  • Also, don't forget that the massive survey on SO showed, that nearly half of the users are self-taught (infoworld.com/article/2908474/application-development/…). You're not the first and definitely not the last one. – Michal Sep 8 '15 at 12:49
1

I have a BA in History, but I've done software development for 25 years. I got into Engineering via a Tech Support job. I proved myself at that job, and it also led to contacts with some of the engineers. I started off asking for help with small projects I was doing, then after I showed I could code, I was given a few minor projects to do. That led to a job in Engineering, and a fine career that is still going strong.

This is the traditional route for people like us. Get an entry-level job, and work yourself up. Tech Support and Quality Assurance are the most common entry-level jobs. As entry-level jobs, they don't usually require much experience, and they offer training. Get in the door, start networking, and create your own path to Engineering.

It's different these days. Today, you can build web apps and mobile apps and all kinds of other stuff that is available publicly, so you can establish a body of work and build a reputation. You have a much bigger forum in which you can prove yourself. Nobody cares where you went to school or what you studied if you can demonstrate a solid body of work.

  • This gives me hope. Did you go into tech with any sort of certs/credentials? I talk about this with our internal IT team of 2 people quite often. They both acquired accreditation over time but for the most part their background is the same as mine - advanced usage of computers since childhood. – Caleb Jay Sep 8 '15 at 19:40
  • I had nothing. I was completely self-taught. But I had been messing around with computers for a while, so I could talk the talk. I also knew the company's main product pretty well, so I felt very confident I could get the job. – Mohair Sep 8 '15 at 19:51
0

Here is the straight and simple and most honest answer, and it doesn't matter what degree or professional history you have.

Get a job, in your chosen career path line. Kick ass, learn everything you can that is relevant, and kick some more ass. Be loyal and show your interest in growth, move on when growth isn't an option. Keep learning, build your portfolio of professional certificates, and record everything you do so you have a thorough CV. Projectize your resume, it's better for detailing what you have accomplished.

Learn the lingo of management...you don't have problems, you have challenges...you have opportunities and gaps...

Keep learning, keep showing interest in professional growth and just do it.

-1

The demand for programmers is extremely high right now. You don't need a CS degree to get work. You just need to be able to get an interview, and then demonstrate an ability to write working code during the interview. And no, you will not always be considered second-class to someone with a CS degree. Your degree isn't stamped on your forehead. If you can learn the fundamentals of CS: data structures and algorithms, and can write a couple dozen lines of working code on a whiteboard, you can get a job. Sadly, most CS graduates I have interviewed cannot do either.

=== Response to comments ===

I have interviewed dozens of candidates for programming jobs, some new graduates, some more experienced. The basic requirements for a programmer in an R&D company are the same everywhere: the candidate must understand fundamental data structures and demonstrate an ability to program. Over half the candidates have been unable to do this, including many who claimed to have gained an MSCS with a high GPA. This year it's 0 for 4. This is not news. And it's not that I'm a ridiculously tough interviewer. My colleagues fail candidates at the same rate.

  • 2
    "most CS graduates cannot write code on a whiteboard??" Maybe if you said "many" I could accept it. – Brandin Sep 8 '15 at 7:43
  • Maybe Kevin could provide some hard data to support the statement? It's a very bold one tbh... – Michal Sep 8 '15 at 9:06
  • 2
    I have also found that most interviewees cannot write code worth a darn. It shocked me the first couple of years. Now I just accept it as one of those weird facts of life. – Jim Clay Sep 8 '15 at 18:32
  • I work in recruiting, and many of the hiring managers I speak with throw out resumes outright that don't have BSc or MS on them. Do you encounter this in your experience? – Caleb Jay Sep 8 '15 at 19:47
  • Hilarious answer, and also teririble. Good luck getting a decent IT job without a degree. – bharal Sep 8 '15 at 19:49

Not the answer you're looking for? Browse other questions tagged or ask your own question.