Take the 2-minute tour ×

I'm in a rather unique situation here. I am going to start school for computer science tomorrow (literally) at a local university in a BS program. However, I am starting as a nontraditional student. My background:

I already have the bachelor's and master's degrees in sociology, the latter of which I gained during a PhD program that I left a half a year ago for personal reasons (such as realizing the subject matter and the work involved no longer held any meaning for me). After struggling for months to find employment in this economy -- where years of graduate school and my experience serving as a teaching assistant (and teaching classes) seem to count for very little -- I decided to go back to school for CS. Between a teaching gig at a local college, a part-time job at a local restaurant, and a loan, I can afford this semester's tuition and my living expenses.

I haven't been coding since an early age, like some CS students. Nearly ten years ago, I took a lot of advanced math and science in high school and a couple of programming classes, where I used Java and C++ -- and achieved a respectable level of performance, enough to make an A in each class. I can use a computer competently enough, but I can't do most of the nifty things that true computer nerds and geeks, hackers, etc. can do. I can do some stuff with HTML, but I'm just now learning about the uses of CSS -- nevermind JavaScript, PHP, XML, Ruby on Rails, etc.

So far, I have been reading several threads on this site (as well as pages outside of here) that are geared towards college students in computer science. Thus, I am picking up a lot of general advice -- such as learning to write well, getting internships and independent projects, coding a lot, reading books, keeping current in the field, etc. I do, of course, plan to do all these things. I'm also trying to learn (re)learn HTML (specifically, XHTML) and add CSS, PHP, and MySQL to my repertoire. (Though, from what I've been reading and hearing from friends in technical fields, I should probably be focusing on HTML5 and CSS3.) I've also started reading a book about Python and playing around with coding some.

I can tell right now it will be rough sailing for the next couple of years, but I'm going to do my best. I'm trying to glean as much advice as I can from the various sites I've found and from the threads already started here. Still, I have a few concerns that I was hoping some of you might be willing to address (for me and for any other nontraditional students that might be reading):

  • Can you recommend any good ways to compensate for all those years not spend coding every chance I got? Or is it simply a matter of playing "catch up"?
  • How can I balance the need to code with other responsibilities (schoolwork, jobs, etc.)? Oh, how I fondly remember the days when all my tuition and expenses were paid for by scholarships and the like, haha!
  • One thing I feel like I probably could do is get accepted to a funded summer research program for undergraduates, doing research projects under professorial supervision. Would that look good to potential employers, you think?
  • Because I already have degrees now, I could possibly go into the computer science department's MS program after taking some undergrad classes. The MS program has an emphasis on software development and includes a software engineering final project. Should I just try to go into that program once I've completed enough undergrad material?
  • Do you have any other advice (outside of my own questions) that would be particularly relevant to nontraditional CS students who may have different situations than more traditional students?

Any advice or input you could offer will be greatly appreciated. Thank you very much for your time and consideration.

share|improve this question

migrated from stackoverflow.com Jan 23 '11 at 22:58

This question came from our site for professional and enthusiast programmers.

I would vote-to-close as "off-topic", except I've run out of votes for today. –  Oli Charlesworth Jan 23 '11 at 20:57
Voted-to-move to programmers stack. –  Erno Jan 23 '11 at 20:59
My apologies, how can I move this to the proper location? I saw many other "student advice" threads on this site, so I concluded that it was an acceptable topic for here. However, if I need to move it elsewhere, I understand. Please let me know. –  Twirling Hearth Jan 23 '11 at 21:09
What country are you in? In many countries in the world there are no jobs for programmers, especially in the current economy. –  user8685 Jan 23 '11 at 23:30

5 Answers 5

up vote 4 down vote accepted

I have a non-traditional advice for you - focus on web programming then look for an internship or a starter position with a company which develops some kind of social-network-related product. Your background in sociology should be very welcome there.

As to your studies, keep the practical course. Practice practical development and avoid involvement in very abstract quasi-scientific projects which have no practical application except amusing professors.

With genuine interest and motivation you can get to the top of the class. Most of the group is typically put together of the youngs who don't have a clue and don't want to find it.

Everything will be fine.

share|improve this answer

I was a traditional college student with zero programming experience before college, and I currently work for a Fortune 500 technology company as a software developer. It does not require you to program beforehand to excel.

I also spent several years as a TA, teaching and tutoring 500+ undergraduate-level students over my career. The most successful of these were the ones that paid attention to detail, sought help if they needed it, and took reasonable notes. The most unsuccessful ones (not surprisingly) did none of these.

You can learn anything, and do extremely well at anything, if you simply try.

share|improve this answer

In my opinion, the most important part to software has almost nothing to do with the particulars of the system you are targeting - i.e. software isn't C,C++,Ruby, or whatever. It's thinking in terms of logical components and structure. Basically, once you have the solution in your head, you map it to your target language. Sometimes, this is easier than others. Languages each have different strengths and weaknesses. Most of them map concepts decently well if you want them to.

Most people waste a lot of time inadvertently memorizing the flavor of the particular language they're working with. That means that they are understanding software only in terms of their favorite language - which means that when they write in a new language, they have an "accent" for a while. Basically, they're trying to write C code in python, and wondering why it's so damned hard.

My suggestion is to avoid language-specifics by solving the problem, any problem, conceptually in your head first. Try not to start coding immediately. Sit, drink some water/coffee/tea, and think about the problem in it's most simple form, and solve it from the top down (big picture first). Write your solution in pseudo-code. Just make up a language to describe what you're doing! Then see how you can do individual pieces in the target language, but try to stay true to the vision you had in inventing the pseudocode.

Oh, and have fun!

share|improve this answer

No worry, they will teach you everything if you try. Most new students doesn't know anything about programming.

Relax and have fun.

share|improve this answer

I'm a commerce graduate working as a software developer for the past year and a half. Prior to my role, I had no programming experience (not even know what a string was).

I was lucky enough to secure an internship/traineeship at a software company and taking a masters of IT part time. I learnt most things on the job and was basically thrown on the deep end.

For me, the hardest part for me was learning how to debug. It was difficult at the start, debugging with different IDE's (Eclipse, MS Visual Studio) on the server side and front end with Firebug. Once I become more comfortably with debugging, solving problems slowly became easier and easier especially with stack exchange.

So I guess my just learn to debug, and write pseudo code before you write actual code and don't be afraid to make mistakes, I've learnt more by making mistakes than reading a textbook.

share|improve this answer

Your Answer


