Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I know some Ruby, but could never make anything great, or even good. I just know that I am interested in programming and that it's what I want to do. What kind of programmer? No idea.

I will be going to school for Computer Science and I don't know what I should do in order to feel more comfortable in my classes. What should I learn? There is so much that I don't know. All I know is HTML, CSS, and some Ruby. I don't know ANY Java nor do I know anything about Apache, MySql, or PHP.

I would like to learn something that would (hopefully) help me in school. I don't want to start out and drown right away because I don't understand basic concepts in __. <--- Anything CS related can fit in that space. What should I learn next?

One problem I face is that I have absolutely NO idea what kind of programmer I want to be. I know that I don't want to program video games and I am not sure I want to do web dev (although I'm sure I don't know enough to really know WHAT to do.)

Can anyone offer advice on some things I should be learning now in order to prepare?

share|improve this question

closed as off-topic by MichaelT, durron597, ratchet freak, Snowman, GlenH7 Apr 10 at 15:19

This question appears to be off-topic. The users who voted to close gave these specific reasons:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – MichaelT, Snowman, GlenH7
  • "Questions about what language, technology, or project one should take up next are off topic on Programmers, as they can only attract subjective opinions for answers. There are too many individual factors behind the question to create answers that will have lasting value. You may be able to get help in The Whiteboard, our chat room." – durron597, ratchet freak
If this question can be reworded to fit the rules in the help center, please edit the question.

3 Answers 3

up vote 2 down vote accepted

Make sure you have solid math fundamentals. I found the Khan Academy to be a surprising good (and fun) resource.

I recommend to work through the Algebra, Linear Algebra and optional the Probability track (videos and exercises). Two videos a day and the related exercises will take about 30-40 minutes.

Parallel to that you should learn "how to think like a Computer Scientist" which is IMHO the most difficult part. I found the book How to Design Programs an excellent resource. It uses a very uncommon programming language (Scheme), but it is astoundingly well paced for a beginner and it lets you focus nearly exclusively on how to solve the core issues of a problem without bogging you down in details, like "where do I have to put the curly braces", "what text editor do I have to use", "whats the difference between windows, linux and mac" etc. ... additionally it is the best grounding for later learning JavaScript and it will give you a lot of ideas on how to improve your Ruby code.

Should you breeze through HtDP and be hungry for more, take a shot at Structure and Interpretation of Computer Programs and go as far as you can before it gets over your head. Also check out iTunesU. Especially the Computer Science lectures from UC Berkeley (some of which are based on SICP). But first iron out your maths skills and tackle HtDP.

That you have no idea what kind of programmer you want to be is not a problem. A good university will give you enough options to explore that after you know the fundamentals. Additionally it is no problem at all, that you have no clue about Java, PHP etc. ... some would say it is even an advantage :)

What might be helpful is that you learn the basics of 'C', but I would say this is - as a preparation for a CS program - highly optional. But you absolutely - no excuses - should have an understanding of the basics of 'C' when finishing university. I can recommend the book C Programming: A Modern Approach - even though it is very expensive.

share|improve this answer

Just try to learn stuff that interests you. Pick a topic that you're interested in and try to learn it. Since you already know some ruby you're well on your way. Don't worry about being good or great or a specific kind of programmer and just focus on exploring topics that interest you. I learned programming because I wanted to build websites and I just sort of explored topics related to web development so over time I learned SQL, CGI, Regular Expressions, CSS, HTML, JavaScript, PHP, etc. So if there is something specific you'd like to make your computer do then you should start with that because having something specific to work on is the best way to learn and stay motivated. I could tell you to go learn JavaScript or C or C# or any number of other things but that would be a pretty boring way to explore programming because half the fun of programming is the creative aspect of making something useful and worthwhile for yourself and others.

share|improve this answer

Can anyone offer advice on some things I should be learning now in order to prepare?

Um. If you're going to school for computer science, they provide you a list of courses and pre-requisites.

You should ask them. Not us.

What should I learn next?

How to focus. Really. Your question is long and rambling. Editing your question down to the essential facts is very, very difficult. Programming involves a lot of editing and re-editing to get the software down to the essentials. It's the same skill. And it's hard.

A brilliant consultant I worked with suggested that one never just post something. Write it off line. Cut it down to the bare facts. Change the font and reread it -- changing the font makes it look like someone else wrote it -- you can focus on the meaning as received by total strangers. Fix it to make sense. Then post it.

share|improve this answer
Yeah, lol. It's really late... errr early so it'd exceptionally hard for me to focus and write a good question. :P –  Melanie Shebel Apr 22 '11 at 10:40
@Melanie: Hence the advice. Write off-line. Sometimes it helps. –  S.Lott Apr 22 '11 at 11:12

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