1 050
285
I'm graduating with a Computer Science degree but I see websites like Stack Overflow and search engines like Google and don't know where I'd even begin to write something like that. During one summer I did have the opportunity to work as a iPhone developer, but I felt like I was mostly gluing together libraries that other people had written with little understanding of the mechanics happening beneath the hood.
I'm trying to improve my knowledge by studying algorithms, but it is a long and painful process. I find algorithms difficult and at the rate I am learning a decade will have passed before I will master the material in the book. Given my current situation, I've spent a month looking for work but my skills (C, Python, Objective-C) are relatively shallow and are not so desirable in the local market, where C#, Java, and web development are much higher in demand. That is not to say that C and Python opportunities do not exist but they tend to demand 3+ years of experience I do not have. My GPA is OK (3.0) but it's not high enough to apply to the large companies like IBM or return for graduate studies.
Basically I'm graduating with a Computer Science degree but I don't feel like I've learned how to program. I thought that joining a company and programming full-time would give me a chance to develop my skills and learn from those more experienced than myself, but I'm struggling to find work and am starting to get really frustrated.
I am going to cast my net wider and look beyond the city I've grown up in, but what have other people in similar situation tried to do? I've worked hard but don't have the confidence to go out on my own and write my own app. (That is, become an indie developer in the iPhone app market.) If nothing turns up I will need to consider upgrading and learning more popular skills or try something marginally related like IT, but given all the effort I've put in that feels like copping out.
EDIT: Thank you for all the advice. I think I was premature because of unrealistic expectations but the comments have given me a dose of reality. I will persevere and continue to code. I have a project in mind, although well beyond my current capabilities it will challenge me to hone my craft and prove my worth to myself (and potential employers). Had I known there was a career overflow I would have posted there instead.
70+1 Agreed. And if you don't WANT to do this stuff on your own time, this might not be the best career path for you. If you put stuff together now, you can build a portfolio that can supplement your GPA. – Chris – 2010-05-13T00:01:55.970
68@Chris, -1. That's like saying that a lawyer who doesn't do pro bono work for the indigent on his own time is in the wrong career. Many programmers I know would be better off spending less time programming and more time doing almost anything else. – None – 2010-05-13T00:13:44.350
21actually a lot of lawyers when cutting their teeth, get paid badly and put in a lot of extra hours just to get ahead. – None – 2010-05-13T00:27:15.297
22You cannot really compare a lawyer job with a programmers job. With programming you can acquire skill on your own; you don't need any employer or clients to improve that part. – None – 2010-05-13T03:02:58.730
2+1 Experience I've gained from personal projects is priceless. – None – 2010-05-13T04:39:47.157
31Really, you need to stop thinking programming is special. Lawyers can work/learn on their own just like we can. They may start off on poor-paying jobs and work long hours, but so do many programmers... the "if you don't program as a hobby you shouldn't be a programmer" line is really very subjective. – None – 2010-05-13T09:07:10.257
3@David M: There's two questions here: should you be programming while unemployed (ideally, yes), and should you be programming on your own time while holding down a full-time programming job? – David Thornley – 2010-05-13T13:32:27.893
3sigh. We've seen the "you must love programming away from the job, or you're not a 'real' programmer" argument many times, and there's no resolution to it. I think it's safe to say that if you like programming in your spare time, because you're so enthusiastic about it, that enthusiasm will take you far. Beyond that, I wouldn't read much into it. – None – 2010-05-13T20:17:31.380
1+1 for the game example, I think that games are the most "complete" type of software that you can make and learn a lot of things in many areas. – None – 2010-05-13T21:39:16.113
I love SQL to death, and it's mainly my job, but I don't go near it outside of work unless it's stackoverflow and that's pushing it. I love fireworks outside of work but wouldn't dare mix those two. :D. I have learned though, that the more you're involved the better you tend to understand it (but this is not always the case, look at tensor analysis... UGH!). so, yeah, program, something you like, and something you had troubles with in school. +1 for the game example too. That's what really helped me get good at embedded programming. – None – 2010-05-13T22:52:48.130
Writing algorithms isn't a bad idea. I like coding contests both for Apps and Algorithms. They force me to use what I've learned. – None – 2010-05-14T02:19:07.373
11I'm a programmer, but I don't write any code at home. 7-8 hours a day is enough for me - too much of anything will bore me after a while! – None – 2010-05-14T07:52:08.943
1I totally agree with TabbyCool. Before I got my current job, I was doing personal projects all the time. But now I have a project graveyard in my Visual Studio folder that I'd rather not think about when I get home from a hard day's work of coding. – None – 2010-05-14T08:11:38.127
I would add, don't be too ambitious, especially on your first project. For instance, if you build a web app, build something incredibly simple such as a blog with extremely basic functionality, then put it on the web. Then add features to it releasing them as you go. It's far more rewarding that way, you get more regular feedback and a feeling of achievement. You don't get depressed/despondent that your overly ambitious project is taking too long, leading to you eventually giving up. – Sunday Ironfoot – 2010-05-14T13:23:22.180
In addition to a game or web site, develop a utility library, using good API and O-O design techniques and good documentation. – David R Tribble – 2010-05-14T14:15:51.037
8Wait, did someone just say they "love SQL to death?" Whatever you have, I hope not to contract it. – None – 2010-05-14T18:28:48.570
Not only that, but web development gives you something to show off to non-techies. I know it's the wrong way to look at it, but having that tangible thing to quickly glance at and say "Wow, I really do have talents that most people don't have" helps me out a lot. – None – 2010-05-16T14:21:54.183
+1 for games. I didn't learn to program until I had to make a game myself. Design patterns, language idioms, source control, exception handling -- I didn't use any of these (or know how to use them) until I started making my own game. – None – 2010-05-16T21:05:27.707
i'm a programmer and i don't go home and write code. but this is only bcause i have a job where i spend 8 hours a day writing code. if i didn't spend this time every day writing code i might have other ideas about how to spend my free time – None – 2010-05-17T09:20:36.430
+1 for dont be afraid to ask. Too many people are afraid they will look silly if they ask a question, but asking a question - whether it be a technical question or something about career progression (as in this question) - is an invaluable way to learn. – None – 2010-05-18T11:43:27.157
1+1 for "If you want to learn you should ask", like my prophet say "every knowledge has a key, and the key to open the knowledge is asking" – None – 2010-05-20T02:03:54.827
1develop a game ON a website :O:OLO (make it non flash, text based w/ graphics and ajax) then you win. no page refreshes, just seamless. – None – 2010-05-22T17:47:19.510
Make a game so you can also show it off to your friends!! – None – 2010-06-14T03:32:06.387
I started making a game in Java, that was all I knew. I decided to try and remake Theme Hospital in Java from scratch at the end of my first year. I learnt more Java that summer and the following year than I did from Uni. Continuously thinking, "there must be a better way to do x or y", and there was, and I often used Stack to find the answers :) Do your own projects, have fun, and get stuck in! – Relequestual – 2010-06-22T17:29:08.923
One more addition to those still in university: participate in programming contests - you don't need to be the best to do this and you will learn a lot if you take it seriously. – Dennis – 2010-07-13T18:03:44.117
You don't /need/ to program as a hobby to be a programmer. But don't expect to be a better programmer than the guys who do it at home too. – None – 2010-07-15T18:21:26.887
Interesting topic: http://gamedev.stackexchange.com/q/5538/2555
– Martijn Courteaux – 2010-12-20T11:17:16.103This really isn't said enough. If you want to get better or learn to program you must program. That might seem odd, but think of all the things in life that require practice. In general, a CS degree focuses a lot on the math behind computing and a lesser degree the engineering. This only gives you an excellent foundation for applying the science, which is programming. – dcolish – 2011-02-04T21:43:24.147