On 12/5/05, <b class="gmail_sendername">Rocco Moretti</b> <<a href="mailto:roccomoretti@hotpop.com">roccomoretti@hotpop.com</a>> wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
josh wrote:<br>><br>> hello,<br>><br>> i am interested in doing an undergraduate major in computer science<br>> that mainly focuses on python as a programming language..<br><br>Undergraduate education is (should be) about breadth. Python has a place
<br>there, but it isn't the be-all, end-all. There are some concepts for<br>which Python isn't well suited in teaching (functional programing, logic<br>programing, operating system programing, etc.). I'd hope that you go to
<br>a high-quality University that understands this, and teaches *concepts*,<br>not programing languages.<br><br>In the long run, it will (likely) be better for you to go to a<br>University where they don't even use Python, but solidly teach concepts,
<br>rather than one that's so into Python that they neglect topics that are<br>taught poorly in Python.<br><br><br>Just my two cents.<br>--</blockquote></div><br>I completely agree with this.  I have B.S. in Computer Science from a 4 year university.  My undergrad education was somewhat different from what I expected going in and very different from what I find most people think a computer science undergrad degree is all about.  I had very few classes that focused  only on a certain programming language, software, OS, etc.  The only classes like that I had were just 1 hour electives.  Computer science is more about the theory behind computing and a logical way of thinking than it is about a certain technology.  
<br><br>As Edsger Dijkstra said, "Computer science is no more about computers than astronomy is about telescopes."  If you are looking to learn Python programming and only Python programming, often (at least here in the US) local community colleges and/or technical schools like DeVry have programs that teach current technologies like Python.  The good thing about these programs is that they are usually quicker to complete, easier, and less expensive when compared to a university computer science program.  The downside is that you usually only learn what is going on now.  They are often very weak in theory.  They explain how, but not why.  They might equip you jobs today, but what about 5 or 10 years down the road?  It is likely that Python with be somewhat different in 5 or 10 years, or may even no longer be a popular language.  If you only know that language constructs and API's of today, but don't understand why they are written or set up the way they are, it could be difficult to adapt or learn new ones as they mature.
<br><br>With a university computer science degree, you will quite possibly not even learn Python, but you will (hopefully) learn the concepts and theories that will make it much, much easier to learn Python or any other language down the road.  I took a Python class in school, but it was only a one hour "language lab" (At my school and many schools in the US, most classes are 3 "hour" classes and it requires 128 "hours" to graduate).  It mainly focused on what makes Python different than other languages.  I also had a 1 hour class in C programming.  These were the only classes that only focused on one language.  I took many other classes, such as Object-Oriented Programming, that used C++ or Java to show examples of the concept, but one language was never really taught over another.  The concepts, such as OO programming was what was really taught.  As you can see, 2 class "hours" out of 128 isn't that many, but I have held a job doing C++ and Python programming since graduation and have done well.  
<br><br>Another thing a university degree gives you, especially if you go to a liberal arts college, is classes in business, writing, and communication.  I have delt with many other computer professionals as well as interviewed many for positions and find that communication skills and business skills seem to be where many are lacking.  I have met people that are unbelievable programmers, but the projects they can work on are somewhat limited because they cannot interact well with management or users to learn specifications or problems.  Many see a programming position as a "loner" position where you write you code and don't have to interact with anyone.  While I am sure that are some situations where this is true, most programs are useless unless they can be used by non-programmers.  I would encourage you to not only take programming classes, but take a class or two in communication and writing skills.  
<br><br>I am by no means the most knowledgeable programmer/computer guy out there, but I thought I would share my experiences with you.  <br><br>HTH,<br><br>Preston<br>