16
votes

I was recently rejected from a college that had previously accepted me, on the grounds that I spent a year of high school in a foreign country and the college wasn't interested in recognizing education received in another nation. Because of this a very generous scholarship has dried up, and and financing an education is doubtful. I'm also hesitant to become a part of a system that has demonstrated what I consider to be blatant xenophobia.

What I want to do is say "Screw college", strike out on my own, and do something amazing, wow everyone, and become a self made millionaire. The reality of the situation is that I'm two weeks out of high school, I have about the equivalent of an Intro to Programming course worth of self-taught experience (although I am driven to learn and improve), I still need to pay bills, and I have a sneaking suspicion that any employer is going to have a hard time taking me seriously.

As I understand it, it's a fairly popular belief that you can make it without a degree, but how does someone like me do that? Would anyone take me seriously if I walked into their office and said "I have no formal education and a minimum of skills, but I want to work and I want to learn. Please give me a job."?

4
  • 3
    Why don't you go to community college and then transfer to a university. It is the cheapest route to obtaining a degree.
    – user7146
    May 29, 2011 at 4:51
  • 1
    Can you redo that year of high school in your own country and then have all the regular avenues opened to you? If you're bored the second time around you can always start programming those projects you suspect will make you a millionaire. However in today's day and age, better to go billionaire.
    – John K
    May 29, 2011 at 14:45
  • 2
    you must not take a rejection from a college bureaucratic personal, as if it came from a professor. Professors are usually involved only in picking the graduate students. If I were you, I would fight back politely, contacting the college and asking them what would it take for you to demonstrate your ability 9and then deliver). High school education is funded by the taxpayers, so I would do another year as someone suggested. i would also consider going to community college for a couple of years as someone else said. The question is: do you value time or money more? best of luck to you!
    – Job
    May 29, 2011 at 19:38

9 Answers 9

27
votes

I have been in the same position as you, and I chose that 'screw college' road you speak of. I had a love for software development, a C++ hobby on top of a basic HS programming course, and dreams. Now I am a professional developer, so I'll give you my experience.

After going to college for 1 year (I had a full scholarship for technical theatre), I figured out that I liked software more than set building.

Year 1 - I started my 'own thing' which consisted of desktop support to pay rent, and developing. Developing anything I could make, for anybody that wanted it, at a fraction of the price. Looking back I was probably doing $20,000 applications for $1,000. Starting out on your own really sucks because even if you did have the experience to know it's a $20K app, you don't have the credibility to ask for it. And worst of all, I have no idea what I don't know, and no other developers around me. I created applications that were maintenance nightmares. I had no skill in architecture or design patterns, so I basically made things that blew up and did network support to pay bills. Lots of Taco Bell, mixed with "well, at least I'm not working for the man". I've got some dreams of apps to write and get out to the world, but that has to come after bills, ya'know?

Year 2 - Becoming slightly better developer by learning what not to do and watching things blow up in my face. Barely getting by on desktop support, learning servers and making web sites. It must be easier than this working for the man, but I have no real portfolio so, press on.

Year 3 - Starting to get the hang of this. When I hit File > New Project, I have some vague idea of where I want to go and how to build things. Still choosing the wrong architectures, web services seem kinda cool, so why not build EVERYTHING with those? Need a calculator desktop app? I'll build a web service! Starting to pick up a few clients and being the IT guy and some software projects along the way. One thing I did do was create a Offsite Backup service using Web Services, so my dream was to be a 'Mozy' while everybody was still swapping tapes. Broadband was just becoming commonplace so I was ahead of the curve, and this was going to be my million-dollar idea. But the service had problems (due to my lack of architecture skills), I had no connections in the industry so no one ever heard about it except for the couple clients I signed up.

Year 4 - Finally, a customer believes in me for a long-term project. I manage to do it without screwing up badly; the code isn't great but it works. Starting to get caught up on bills, I get to work with a few other developers (fake it till you make it, right?) and even answering a few Experts Exchange questions. Oh yeah.

Year 5 - If you hadn't noticed by now, those dreams in Year 1 still aren't written, so that's starting to get a little depressing. I have a decent portfolio of stuff I've written successfully, got some decent momentum, and a respectable client base. Still don't really know what I don't know, and breaking even.

Years 5 - 8 - I'll combine these since it's more of the same of "do a project, learn a little on each, bring that experience to the next one". Today is in the middle of Year 8, and it's only in the last year or two that I've become a good developer. Those dreams in Year 1 have already been invented many times by someone else. In case you hadn't guessed, I didn't create Mozy.

Along the way I've had new dreams and new ideas, and some have been good, some have been horrible. I now have the skills to make them happen, and some of them are happening, and it's exciting. However, I have a feeling if I would have done things differently I could have shortened this journey quite a bit.

I can't speak to how differently college changes this journey; I'll leave that to others on this thread. But the pieces of advice I will give:

  1. You need to work with other developers. I didn't realize how important this was. You don't know what you don't know until you look at someone else's code or get a horrible code review.
  2. Fail before you have major responsibilities. If you really want to go out on your own, try to do it before you get married, have a house payment, kids, etc. You will fail and you will fail many times. Get used to it and value it as it's the best experience ever. But when your killer app that you just spent all your time and money on doesn't have a single customer, it's a lot easier to recover when it's just you.
  3. There is absolutely nothing wrong with bootstrapping. If you've got network skills, go work in a Network Operations Center or help desk (something within the realm of IT), and work on becoming a better developer off-hours and on the weekends. Make connections with people at real jobs. You'll need them later.
  4. Be 125% sure that you LOVE software development. The passion for software comes before the 'millionaire' part, not the other way around. If you don't have a passion for this, or your heart doesn't start beating a little faster when you hit New Project, go do something else and keep this as a hobby.

I'm sure I could go on, but the funny thing is I saw this question while working on one of those dreams and had to answer this one. :) Good luck.

2
  • 6
    As a self-taught web developer I can agree that the "You don't know what you don't know" point is particularly valid. May 29, 2011 at 9:22
  • 5
    +1 for "Fail before you have major responsibilities". I'm self taught and spent years working on freelance projects in the evening before getting a full time role. Looking back I wouldn't change a thing but if by some twist off fate I met my Mrs earlier in the process I know I wouldn't be getting married in a couple of months, 80-100Hr weeks don't work too well with a relationship. May 30, 2011 at 0:49
16
votes

Without a doubt, go to college.

Personally, I did it without college (not saying I'm a millionaire, but I have a good job with a company I love working for), but it's a tough road. Initially, you're behind the curve on everything. Math, algorithms, operating systems, all things that you get during a formal education (and some of which, i.e. Calculus, is very difficult to learn on your, even with access to things like math.SE).

Being fresh out of high school, you might be able to work your way into a QA department and start soaking in everything you can. The path from QA to developer or engineer can be a rough one though as there is a (sometimes poor) generalization made about people coming from QA trying to get into a dev path.

Going at it without a degree is doable, but tremendously difficult and takes just as much luck and networking as it does pure skill.

Even though I love what I do and am proud of my personal achievements, I would never recommend it to anyone who has the ability and is in a good position to go through a degree program.

3
  • +1 I'm didn't go to college myself, quit school early, and had to overcome many problem when I started as a software developer without required credentials. However that path made me like I'm today, and I like how I'm today! I like so much to learn that I'm about to start university studies (in another field)!
    – user2567
    May 29, 2011 at 10:29
  • 3
    I disagree. I got into full time, professional software development without a degree, and I think it all depends upon the individual. I hate formal, structured education, and much prefer learning while getting things done. I know I'd never have been able to make it through college (even though I had the grades to get into a decent one), simply because it's all so theoretical and, well, pointless. So if you're not the kind of person who's going to enjoy the structure of college and you are a confident autodidact (which you should be as a dev to be honest), then college isn't necessary.
    – Ben H
    Jan 31, 2014 at 0:43
  • Formal education is a racket. Theory, as Ben said, is pointless unless you're working in an academic capacity. I really cannot fathom people's obsession with formal education, and spending 4 years being lectured among 30 other students, instead of spending those 4 years applying what you're learning. Don't we learn by doing? Not just that, why would I spend 4 years on a degree, inherit a crushing debt, to then go follow a career and save for retirement? Why would I not just build my own company? Make my own money? Use the tools I want to use? The concept of employment is laughable.
    – user9682
    Aug 21, 2014 at 0:14
4
votes

With your current resume, you will not get a job as a developer, so don't even bother.

If you can't, or won't, go to college, you'll have to get some experience on your own. It's a hard way to do it, but it can be done. Mobile apps are a good way to get started, since you can put your product in front of real users very easily. Contributing to open-source projects might be another option. Or just write something for your own use. At first, you won't make any money from this, at least not enough to earn a living - so you'll probably need a regular job as well. Keep an eye out for opportunities to get some cheap education; some colleges let you take courses without credit for a fraction of the regular tuition.

Do this for a few years, and then you can start sending out resumes. Assuming you still want to do this shit for a living.

Good luck.

3
votes

Hmm... this is difficult. I think it really depends on your nature as a person.

If you really knew the content in about 6 or 8 books, you would be a very solid developer (years beyond what is being produced by most CS programs - seriously). Take the fundamentals seriously; very seriously - like a religion seriously (KR could be your bible).

The idea of doing small projects is good. Always try to improve yourself - pick a couple of ecosystems and learn them well (1 - say ROR or Django on linux with mysql and 2. iOS / Objective C; 2.5. - throw in jQuery / HTML).

edit--- off the top of my head, I'd suggest the list below (in ~ this order); I have 9 but one is a math book, one is a scripting / Java book, and the last I'd consider optional. There's a couple of topics beyond this that would be covered in Joel on Software. I think this would make you a very strong developer - I'm sure others would disagree.

  1. The C Programming Language - Kerrigan and Ritchie - most of the other books are a fleshing out of the issues raised here
  2. a good scripting book in the language of your choice (Ruby, Python, PHP) or Java book
  3. Computer Systems - A Programmers Perspective - this book just keeps giving and giving
  4. Discrete Mathematics With Applications - Epps (?)
  5. Advanced Programming in the UNIX Environment
  6. A machine learning / AI book maybe Pattern Recognition and Machine Learning OR a dedicated networking book such as TCP/IP illustrated vol #1
  7. Design Patterns or J2EE Design Patterns
  8. Algorithm Design - Kleinberg
  9. Understanding the Linux Kernel - optional
12
  • What is KR? Is this a book?
    – Ominus
    May 29, 2011 at 2:32
  • 2
    @Ominus I believe he is referring to "The C Programming Language" - en.wikipedia.org/wiki/The_C_Programming_Language
    – user7007
    May 29, 2011 at 2:35
  • @Glenn +1 Thanks! @timpone when you say 6 or 8 books do you have some in mind or just generally speaking? If you are specifically thinking of of specific books I would love to see the list. Thanks.
    – Ominus
    May 29, 2011 at 2:42
  • @Ominus Personally I'd say any books related to your programming languages you use and books from this question (programmers.stackexchange.com/questions/870/…) are good to have as well.
    – user7007
    May 29, 2011 at 2:46
  • 1
    @timpone: Ah, missed #7 :) And yes, we obviously just disagree which is fine (some of the best conversations are born from disagreements :)) May 29, 2011 at 15:01
2
votes

I started as one of those screw-college developers. Nowadays I'm finishing college even though I have a nice, well paid work as a developer.

I first started playing with computer programming when I was about 9 years old. On the 90's I made some cash creating websites for friends and this gave me first hand experience with the early web (I played with javascript, I was pretty confused when CSS showed up, etc).

When I was a teenager I decided that it was time to really learn computer programming in depth so I searched the internet on the topics that every programmer should know and then I spent everything I had on books. I bought one book on Discrete Mathematics, a OS book and a book on C programming on UNIX environments.

I then set out to learn object-oriented programming with C++ and picked up Python and Java along the way and this got me my first job (it didn't pay well but I would be soon leaving this job for a much better one).

When I got to college I found myself really frustrated with it. Except for classes such as Calculus , Statistics and Formal Languages; I pretty much already knew all the topics covered in the course and balancing college and my job was getting harder everyday.

College got me so frustrated that I dropped out and decided to learn everything that I needed by myself. So again, I bought more books, participated in open-source projects and kept switching jobs so that I would keep forcing myself to learn new things.

Last year, I decided to go back to college (though it still frustrates me). The reason that I decided to finish college was that I now have to opportunity and I don't want to ever have to regret not going to college.

So, yes you can work as a software developer without a degree but you will have to study a lot, take some lousy jobs when you're still a beginner and show every potential employer that you have knowledge, experience and you are really smart (after all you need to convince him to hire you and not the other guy who has that CS degree). Just be sure that you understand data structures, algorithms and algorithm analysis, design patterns and some OS concepts.

My final advice to you: if you can afford to, you should go to college. Trust me, it will be much easier now while your're still fresh out of high school and don't have to worry about paying the bills. Being a developer without going to college only works if you started really early. People will hire you if you have a degree but can't code well yet, now, if you have no degree and still can't code well you are not going to get hired.

1
vote

If you can get into university, it will make it easier for you, but it's not necessary.

The key is having stuff you can point to and say, "I made that". The only way to do that is to work yourself up from the bottom. Start by doing odd jobs for people who "just need a programmer". Maybe check out places like eLance.

You can also write your own software and sell it. Pick some problem that doesn't have a good solution in the marketplace yet, and write a program that solves that problem. You'll be able to sell it. Then you'll have some credibility. Honestly, you'll probably do a crappy job if it's your first real project, but you'll learn a ton, and you'll still sell copies if it's useful. The code doesn't have to be pretty. Users only see the UI.

Experience is key. Luckily programming is one of those professions where you hardly need any overhead to get going. Just realize there's a really long learning curve ahead of you.

0
votes

Employers want at least one of two things (or both): Education or Practical Experience. Typically obtaining an education is one of the easiest ways to get into the system where you'll finally start gaining practical experience. Gaining an education says to an employer that you'll stick with something that is difficult (and that may sometimes appear useless and to be a waste of time). This is important to them because work, no matter how much you enjoy it, will never be easy or fun all of the time. They want to know that you're going to stick in there.

That being said, if you're going to attempt the route you outlined, you're going to need to get some practical experience. I personally would recommend looking at start ups (they're usually a little more likely to take a risk on someone with little or no experience). Another thing to consider is getting a job of any sort (to pay the bills), then spend time developing projects of some sort that you can use as a resume. Once you have a small arsenal of projects you would be in a much better position to approach employers and say "Here's what I can do...".

My personal recommendation would be to go to school. It doesn't much matter which one and with grants and scholarships that are widely available and under used, there are plenty of ways to finance an education. In the end you'll likely be very grateful you did stick with school if you were to finish and get a degree.

0
votes

I've been out of high school for about 2 years now. I already have a job in programming and took only about 20 or 24 hours of college. I didn't have enough money or time to do it after the first two semesters though.

How did I get my job in programming? Luck, basically. But you can increase your odds of getting luckily noticed. The reason I got noticed was because of some little side programs I made and showed my friends.. That, and I was known as "The Computer Guy" with more teachers asking me how to fix their computer than the actual tech support guy. Well, one of my friend's dad owned a small software company...

The piece of advice I'll give you is do not stop making things. Learn and Make. Make any project anyone would ever want. Anything interesting to you, or anything that someone would pay you even a dime to do. Contribute to open source projects as well. A team-ish environment is good.

Also, get known on a website like StackOverflow. I got my second job offer from a Stack Exchange query on StackOverflow that basically showed everyone in Oklahoma.. and I was the highest ranked person in reputation.

0
votes

Great, great answers here. I'll throw in my own experience, as well.

I've been programming in some form or another since I was about 5 or 6 (TI BASIC, anyone?) In 1995 or so I got into Linux and started teaching myself C and Perl. I never even took a programming course in high school, because at that point they were teaching Visual Basic and Visual C++, and I had no interest in either.

Went to college. CS 101 was "Intro to Programming (Visual Basic)." Became a Philosophy major.

Dropped out of college. Worked at CompUSA, started doing freelance web development.

Worked at coffee shops or tech support type jobs, kept coding on my own... doing freelance and open source programming.

My first "real" coding job (with "programmer" in the title) came through nepotism. A friend was leaving a position and they'd asked him to find his replacement.

Now I get offers on a regular basis, my career path looks good, I'm not worrying about that degree. But I am going back to hit some of those CS courses... Even though computer science != real world programming, you will learn algorithms and (hopefully) design patterns that will keep you from doing some stupid things and reinventing the wheel. So school isn't necessary... but it helps.

Mainly, I would say, even if you have to go to a state school or even community college, go and learn as much as you can. Keep hacking on open-source projects in your spare time (GitHub is the new resume, as they say), and if something more attractive comes along... you don't have to finish. You don't have to graduate to put a credit count and GPA on your resume, FWIW.

Anyhow, best of luck. If you really have the passion for writing good code, that's the key. But college is sort of a 'legacy system dependency' for most companies.

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