tags:

views:

85

answers:

7

Hi,

I've taken VB.net, Java, and C++ ~3months each in a college so basically, right now, what I know are basic stuff.. This fall, I'm going to do a bit of web development course with XHTML/HTML/Javascript and some database management course as well. Since I'm learning something new (bit of web dev), I'm not keen on learning a new language next semester if I have free time. What I was planning is to be more knowledgeable in C++ and study design patterns along with it. Is this a good idea or should I be doing something like algorithms or should I just pour out all my free time learning XHTML/HTML? Thanks!

A: 

This brings up the old saw of "the best way to improve a skill is to use it." Put enough effort into understanding what your official courses are teaching, but practice somewhere else, too. You don't mention if you have a "day job" as well as school, but any skill you want to improve or maintain must be used on a regular basis.

Adrien
A: 

I'd say go with your college's recommended courses for the next while. They probably have "tracks" of learning that will lead you in one direction or another; try to figure out what "track" you'd like to go along, and follow the recommended courses for that.

McWafflestix
+4  A: 

Algorithms are really, really useful to know. A solid understanding of computational complexity and algorithms can be used across programming languages and across projects. It is fundamental information that will benefit you immensely over the course of a career. If you ask an academic what computer science is, he will tell you that it is a branch of mathematics concerned with complexity, computability, and algorithms.

That being said, you may not be interested in it. Knowing what's O(n) or or Ω(2^n) will not improve your HTML, and being able to explain what it means for JavaScript to be Turing Complete sure won't make your webpages any more cross-browser compatible.

I say learn what interests you, but I do advise sitting through at least one theory course. Good fundamentals never hurt.

CaptainAwesomePants
It sounds from the original post like he's interested in actual programming languages enough that algorithms would be a safe bet. Also modern web application development is much more focused on issues of code performance and architecture than it used to be. Not saying your point about HTML isn't valid, but for this specific guy, I think your main point can't be emphasized enough.
mikeh
A: 

Pfft... neither! You should spend all your free time answering questions on SO.

Seriously, there's plenty of time to learn stuff, so just pick whatever you personally find most interesting. This is the really awesome thing about college: since you'll have to learn most of the profession you get hired into afterward anyway, you don't need to worry about it now and can enjoy yourself.

EDIT: I'm assuming you find your field interesting enough that enjoying yourself implies learning something that's applicable.

plastic chris
So, Beer-Drinking 302 may not be a good choice for a dev?
Adrien
I found it to be a fantastic course, myself. At least, I think so...
McWafflestix
Of course, I also enjoyed it ... But its practical application to work isn't so obvious. Of course, after days like today ... :)
Adrien
@Adrien:That class was mandatory for every student, back in the times when I was one myself. Did things change so much in those few years?
slacker
A: 

Do a mini-language - get regular expressions completely under your thumb. Not just the easy stuff but the hard things too. Crack it so you know them backwards and can write them in your sleep.

I absolutely guarantee you that over the course of your career the time spent will pay rich dividends many many times over. I simply cannot count the number of times I've found lines and lines of code that could have been simplified down to two or three lines if the coder had known how to employ even a relatively simple regular expression.

Cruachan
A: 

I have been a developer for some time and have worked in a few environments where I inherited applications that were created by developers who were well versed in the different programming languages. I have seen great developers create technological debt by creating inefficient databases structures. Usually this type of database design is coupled with poorly written SQL. While not every job will allow developers to create their own databases; a solid understanding of database design and proper use of SQL will benefit the developer greatly. I would suggest taking some database design classes. If you are not planning to attend a class two great books are Database Design for Mere Mortals and SQL Queries for Mere Mortals by Michael J. Hernandez. If you enjoy those topics and want to learn some new technologies take a look at the .NET Entity Framework. Good Stuff!

~Ian

Ian B
+1  A: 

I tend to agree with the answers already posted, but a few additional thoughts.

If you are asking specifically "should I learn patterns or data structures", I would have to say DATA STRUCTURES.

Data Structures are one of the core foundations upon which most programming is based. Patterns are (IMO) a current fad (giving cutsy-pie names to stuff we've been doing forever). Patterns will get you an interview at some trendoid code factory, but will not make you as good a programmer as someone who understands data structures. Sometimes, the fundamentals are just that important.

Cheers,

-R

Huntrods