# Best colleges and universities for 'programming'?



## jayrpowell (Mar 12, 2017)

Our son (16) is talking about going to college and majoring in 'programming', and thus is now looking at different colleges and universities. So what are your thoughts as to the best school(s) for 'programming'? And, yes, I know that is a very vague and general term, covering everything from theory to languages to operating systems to business systems to graphics and so on. What schools or universities, and in what technical area(s), would you recommend?

Our location preferences are Massachusetts (where we live), NE US, the rest of the US, and anywhere else on Earth (unlikely, but still want to hear your thoughts).

Thanks!


----------



## drhowarddrfine (Mar 13, 2017)

There can be a debate about "programming" degree and school versus a "computer science" degree. 

If you need to look further west, you can't do better than Washington University in St. Louis.


----------



## jayrpowell (Mar 13, 2017)

drhowarddrfine said:


> There can be a debate about "programming" degree and school versus a "computer science" degree.
> 
> If you need to look further west, you can't do better than Washington University in St. Louis.



Thanks! I'll pass along Washington University in St. Louis to my son. I assume you're recommending it based on "computer science" and not "programming". 

I do agree on the possibility for debate, which is why I tried to use as vague a term as possible. (We can even add to the debate "computer science" versus "software engineering".) The local VoTec high school has a 'programming' course track, which he tried to transfer into from his current high school, but the track was full. I've been trying to emphasize more the science/engineering over coding, but he's still trying to figure these things out for himself.


----------



## drhowarddrfine (Mar 14, 2017)

A lot of programmers have a computer science degree but it's the study of the science of computers and not programming--or hardware for that matter. At one time, a lot of computer science students would graduate without being required to learn any programming language at all, or so I was told. Even MIT used to start you off with a Lisp language but no others.

Now those are all anecdotal, partial stories I've been told. My background is as an electronic engineer who now does nothing but programming.

Nowadays people go to "school" to get a "degree" in "programming" and none of those three terms mean the same as when I was in school long ago. A computer science degree was a computer science degree but there are all kinds of money making rackets out there today.


----------



## Oko (Mar 14, 2017)

drhowarddrfine said:


> Even MIT used to start you off with a Lisp language but no others.
> 
> Now those are all anecdotal, partial stories I've been told. My background is as an electronic engineer who now does nothing but programming.



It shows! Lisp aka. scheme in its standardized form is the most appropriate language for teaching programming as a direct implementation of Church's lambda calculus, one of two ways of formalizing the concept of effective computability (the other, equivalent by Church–Turing thesis, is Turing machine). Unfortunately shallow-minded people have ban the use of * Structure and Interpretation of Computer Programs*, the best book ever written about programming, for teaching at MIT. Here is the book

https://mitpress.mit.edu/sicp/full-text/book/book.html

for those who care for anything besides PHP and Java.


----------



## ShelLuser (Mar 14, 2017)

I think another important detail here is the eventual goal. Does he want to learn how to program or does he want a degree which he can then use to further build his career on?

Because you don't need a degree to be or become a good programmer. You don't even need school for that thanks to the tons of available information on the Internet. What you do need is motivation: the will to actually learn all this. Of course it can leave you with a problem: some companies only look at papers and don't bother to check someone's actual abilities. Of course there are also others which do.

In this scenario I'd probably focus on something mainstream (better job market) which is still easy enough to learn (doesn't require existing experiences). For example Java, C / C++, .NET (C#/VB), Javascript. All of these languages have a lot of useful (freely accessible) documentation available where I personally like the documentation of Java and C# the best for its accessibility.

However, if this is all about finding the best degree then that's something I can't answer. Also because I'm not from the US and therefore not familiar with the educational system.


----------



## drhowarddrfine (Mar 14, 2017)

Oko said:


> Unfortunately shallow-minded people have ban the use of * Structure and Interpretation of Computer Programs*, the best book ever written about programming, for teaching at MIT.


They banned it?! OMG! 


ShelLuser said:


> Does he want to learn how to program or does he want a degree which he can then use to further build his career on?


That's exactly the issue with being self taught. Having a foundation built on fundamentals which so many pooh nowadays and some schools have degraded through their own efforts. 

As I said, my background is in EE and, even though I consider myself a good programmer after years of doing it, I notice gaps in my knowledge that cause problems or would help speed things along if I only better knew the algorithm or logic or math background properly trained CS students learned their junior year. I don't get caught often but it can be embarrassing at times.


----------



## jayrpowell (Mar 14, 2017)

Thank you, everyone! My son and I sat down together, read, and talked about all your replies. Along with your recommendations on colleges, and the links, these are the important things I'm encouraging him to consider as he decides on his life after high school.


----------



## rigoletto@ (Mar 14, 2017)

This comment is compromised because I do not have any professional relation with the "computer" market!

As someone who routinely deal with council members, diplomats, and others governmental authorities, what can be considered _successful_ people, and if he is whiling to pursue this kind of activities (top level ones), (YMMV) the default per-curse I find around almost all those people are/have:


very good general subject meaning, I mean world history, geography, anything. Also is always good to learn at least a second language, but two or three are better, even you if you think you will never use it for anything professional;

the course made after high school² just indicate which field of business you will work, but you should be serious good on it (technically-wise), even if you will not really use it later;

a MBA/Master/PhD³ degree in something management related is always present, unless the position in cause is very related with the international side of the business where currently you can find a lot of people holding international relations degrees. However, the most common ones are about international business, what intrinsically include management.

So, making it shorter, based on my observations, the first course usually indicate what kind of business field you will work in, and later the addiction of a higher degree of something management/business (sometimes financial) related is what usually open the doors to the top.

However degrees alone do nothing, it is a lot more important to understand how the field/business you are in works, and how business work in general - _even if you wont be related with business directly, because it will facilitate you to understand and predict what will happen where you are working in_. And more important, is the network you managed to create.

I am with a writing mood:


> Some time ago I met an old high school friend and he was with a startup what was amazing. I do not like to work with startup business (but infrastructure and international trading), but I could put that thing (it was a service) on the market quite fast because I had some good people from marketing sector who became crazy when saw that thing, but that friend wont learn how to do business...
> 
> He didn't had money or any real business plan. I quickly organized everything, find a investor and we could launch that thing somewhere in Europe on the next summer (about three months) with all the bell and wishes - _including media coverage_, still with everything already solid arranged to expand to several countries around Europe on the next year.
> 
> ...



PS. still amaze me where I find engineers (any king) working. Sometimes in positions and fields absolutely not related with engineering.

PS.2 it is always important to know how to do your job in an "old school" way, wherever it is. This is the only way to deep learn how to do your job properly.

¹ in USA I just have contacts on Texas area, but not too much yet.
² the US undergraduate/graduate nomenclature always confuse me.
³ MBA is faster and usually brings faster results, but the scientifically thinking of Masters and PhDs do bring deep ones with time.


----------



## roddierod (Mar 15, 2017)

Oko said:


> IUnfortunately shallow-minded people have ban the use of * Structure and Interpretation of Computer Programs*, the best book ever written about programming, for teaching at MIT. Here is the book
> 
> https://mitpress.mit.edu/sicp/full-text/book/book.html



Can you expand on that or give links?  I tried searching for why it was banned and find nothing. And the open MIT course has a class available, although it says from 2005. I'm just curious as to why a tech book would be banned.


----------



## drhowarddrfine (Mar 16, 2017)

That's why I asked the question earlier. I know MIT switched to Python over Lisp (Scheme) and the SICP book was re-written for Python, iirc. 

You can find an online explanation for why they did this somewhere. I read it years ago.


----------

