I went to UT around the time of the dot com crash. The curriculum was not always so Java-centric. It used to start out with Scheme, C++, and Assembler. I think it was a year or two afterwards that most courses started using Java for everything.
As far as startups, I do remember most of us wanting to work at Dell or AMD when I was an EE undergrad there. We would all go to the career expo and put our resumes in these giant piles. Never hearing back from anyone led me to explore other opportunities.
I would guess that the source of department donations would drive focus for many universities - and not many startups are dropping seven figures for new buildings or fellowships.
I agree with some points, but I also see the benefit of learning real programming from Java/Haskell.
I graduated from UTCS and I see too many web programmers just load up RoR Gems to perform something that takes 10 lines of code. Same thing with jQuery libraries... young programmers are not learning how to program, and if you tell them there is this shortcut they will take it.
Foundation is needed, that's the hidden secret. After you master foundation, then you can hack any code no matter the language.
The UT ECE department does a pretty good job trying to remedy this, but ends up having the opposite problem. Yale Patt's EE306, Intro to Computing, takes the class from transistors up to assembly on a simplified architecture.
Intro to Programming helps students get their feet wet in C and the subsequent Data Structures and Algorithms courses are entirely Java. Intro to Microcontrollers is C and assembly.
Here's where UTECE falls flat, with respect to startups. After getting a decent foundation in "Real Programming", further specialization in tools useful for web startups (php/ruby/jquery) is left as an exercise to the student. Case in point, I'm a 3rd year Comp. E and I have yet to hear the word "database" uttered in a classroom.
A web apps class doesn't even have to be good. I would take it just to meet other hackers who are probably self-taught by now anyway.
I found that this article could easily have been written about my University, from which I graduated about a year ago. I wanted to do a startup-esque project for my Senior Design capstone project, and I had no end of complications in getting the project approved. It seemed every other student was doing some sort of "academic" endeavor working under a professor (with students all in the same major of course).
I would guess that a majority of Universities are somewhat narrow in their focus and what their definition of success for their students is.
> (I've met seniors that have never used version control!)
I was one of those seniors, albeit at UT Dallas. I wasn't alone, by far. I was a Comp Sci major, not a Software Engineering major, but the majority of my classmates probably couldn't write a piece of code that ran.
No real solutions, just reiterating the scary facts about people who call themselves programmers.
B.S. in CS, graduated 2006. My username is my name, but I doubt we ran into each other, I didn't really socialize a whole lot. But that's UTD for you. :0
I still remember, vividly, the reaction of my professor in a graduate-level CS course at UTD upon realizing no one (myself included) had ever used a debugger.
Needless to say, it was a real wake up call for me.
Is source control considered that large an educational opportunity that the lack of classroom discussion is a barrier? When I hire someone that is a 15 minute conversation and maybe a cheat sheet taped to their monitor - regardless of education. If they can't pick it up by the end of the day that's usually a good sign that things aren't going to go well.
Not that there aren't plenty of educational opportunities surrounding the implementation of a good control system, just that teaching basic usage just seems to be a little simple.
Now not being able to write running code is a serious problem and it is frightening that someone could graduate after 4 years of computer science and never have written a working program.
From a hiring standpoint its not something I look for in recent graduates. I also don't ask whether you have learned to use an IDE. Those just aren't things I expect you to have been taught in a high-quality cs program because those are things I expect to teach you on the job in under a week - along with all the other project specific things you will need to learn (like which frameworks we are using, what coding standards we use, our check-in policy, etc.) If you have learned to use them and are familiar with them, great. It won't really affect your chances of being hired though because in our next project we may be using a completely different set of tools, and I will expect you to learn how to use those instead.
Now if you are claiming 5+ years of professional experience and have never used a source control system that is likely to trigger a whole set of negative questions surrounding what kind of experience you actually have, but it isn't a deal breaker - just a warning sign.
I went through ChE at UT Austin in the 96-00 period. Most of my friends were in CS or EE (which kind of explains my actual career path) and it seems that their experience was much, much different than this persons. They were hacking C and Perl and the better ones were getting odd jobs in industry through their professors by the middle of their Sophomore year.
They had some pretty challenging real world like projects to do (way more than I ever got a chance to work on so early, that is for certain) from identifying a problem, choosing the infrastructure that would be most conducive to solving the problem before the deadline, coding the solution and finally, testing the crud out of other people's projects...
Finally, at the first opportunity, a bunch of us broke off and started a company and so on etc. etc.
It is easy to blame culture and professors or other people in authority but ultimately the bulk of the community, in this case, are students. It is ridiculously easy to start a student organization. If I remember correctly, UT will even grant $700 or so to get started so there is little excuse not to generate interest and involvement. Then again, maybe it is better to just go hack and meet like minded students...
As a side note, I think it is a terrible idea to get business students involved in any attempt at a startup. They add very little and tend to want to take over in my experience.
It's not fair to blame the small Austin startup community on UT. Austin doesn't have angel investors and VCs tripping over themselves looking to fund the next Twitter killer in the same way that the bay area does. It makes for a smaller startup community, but also one that is more focused on building real products.
Full disclosure: I graduated from UTEE and have worked at some really great small companies in Austin.
At UT, I spent 2 years programming both Haskell and C++, and then 2 years with very little programming. We focused instead on theorem proving and linguistics. This has a lot to do with Dijkstra's legacy in the department.
Implementation, industry, and start-ups are thought as an exercise left for the reader, and not part of curriculum. Throughout my career, I've always felt proud about this.
This post proves exactly why people are recommending not going to College. If you want to be an academic researcher, go to college for CS. It really does work well. If you want to program, start programming on projects you are interested in and build your resume.
College will teach you lots of useful stuff outside of programming etc. I use my Berkeley education everyday via critical thinking, researching competitors/markets etc, presenting confidently, writing, argumentation and slicing through rhetoric etc. It would be naive to think that you can run a startup successfully by simply banging on a keyboard.
It is for this reason I suppose Software Engineering was formed, as a separate discipline from Computer Science. Unfortunately, for most people I've come across, Software Engineering is the other name for Java.
I think the same article could be written about lots of top ten schools, particularly the larger ones. Take UCSD for example: top 10 CS program, great city for young people, decent amount of angels/VCs floating around La Jolla, huge city (LA) only an hour away with access to even more capital... yet there hasn't been a major tech SD startup since mp3.com.
Big schools do not foster startups. I wonder if it's because smaller schools have more in common with startups? They have smaller staffs, leaner budgets, and typically fewer ridiculous processes. Key example: I just applied to Stanford and UTCS for my PhD. Stanford has clear info on deadlines and sent me an automated email reminder a few days before the app was due. UT Austin requires you to fill out two separate applications (one for the general UT system and another for UTCS), with different deadlines for each, inconsistent deadline info between the two systems, requiring duplicate information, and setting up a convoluted group of user accounts.
It is very hard to get big schools to understand startups. Virginia Tech was pushing very hard to encourage starting more tech companies, but their approach was to build a gigantic Corporate Research Center with isolated buildings and establishing formal "partnerships" with established or funded companies. Projects like the BT transit app get buzz only after they are a hit; and they don't try to compound the momentum by getting an order of magnitude more students working on their own apps, but rather let everything die down and force the few startup-friendly professors to start all over again.
As with most big organizations, the problems are fairly obvious. It's just nearly impossible to get them to change anything, especially since the main issue is a lack of willingness to change things.
I attended both UCSD (undergrad) and UTCS (PhD), and UT Austin is light years ahead in terms of fostering entrepreneurship at the academic level. Examples: UT had one of the very first business plan competitions in the world 30 years ago (MootCorp) and it created the very first tech commercialization competition 10 years ago (Idea2Product). My personal experience is that the university administration (president, VP of research, Austin Technology Incubator, deans) is very encouraging in regards to any and all entrepreneurship efforts - the major obstructions have come from tenure-track professors. Most research professors consider exploring startups a waste of time, since it does not directly lead to publications.
Another example is that as recently as five years ago, UT's business school (McCombs) discouraged their graduating MBAs from diving into startups. Reason: their rankings were heavily influenced by the salary their alumni rake in immediately after graduation. So the official party line was to encourage them to go into big business with a cushy salary. Luckily that's changing now.
I think the problem is that the feedback loop between UTCS and the Austin startup community hasn't hit a critical level. I can't name a single product made by an Austin startup that I've used, while I can think of dozens within a few miles of Stanford. Additionally, plenty of SV startups are within walking distance of Stanford, whereas most Austin startups are at least 10 minutes (by car) from the UT campus and are located in office parks, rather than the open pedestrian environments of University Ave and Castro.
If you've ever read a customer review on Dell's, Macy's, Costco's, or Home Depot's websites, you've used an Austin startup product - BazaarVoice. If you've recently booked a vacation rental, you've almost certainly used one of HomeAway's properties (they're in the middle of consolidating the entire industry). Maybe you've looked for a job via Indeed.com? Use Gowalla instead of Foursquare (Gowalla relocated from Dallas)?
The startups are there; they are far and few now but rapidly increasing. I fully agree with you on the disconnect between academia and the startup community though - it's frustrating just how hard it is for Austin startups to hire UT talent.
I agree. I'm a UTCS grad that was hell-bent on getting involved in startups, but there simply weren't many options at the time ('08). The reasons I witnessed are the following:
* Austin is no longer an entrepreneurial town.
* The 10% rules hurts the entrepreneurial spirit.
* Geographic isolation hurts the entrepreneurial spirit.
At UT there are a few great upper-division software engineering classes, both in EE and CS. In particular one software engineering class I took has small teams act as a startup. You find a need, go through the process of figuring out what to do to meet the need, implementing the solution and then shipping the solution. For ours we created lesson-planning software for a elementary school teachers.
A CS program is not a business school, it's supposed to be teaching a science: that is, a set of tools for exploring and explaining the laws of the universe. There's no more reason to promote startups in CS than any other scientific field.
CS departments have relationships with large corporations because they have money and sponsor research. Startups don't. This influx of money has warped the field. It's better to ask why there isn't more science in computer science than to ask why there isn't more business.
I completely agree with your second point, however the value of promoting startups is that it is exciting and provides real world applications for what you are learning about. I am a biologist, and the truly great and respected biologists are those that don't simply use the tools given to them. They tinker, they screw stuff up, they see what happens...and that is exactly what a startup should be doing!
I only had one class that used Java. Different classes were taught in C, Lisp, Scheme, ML, Haskell, etc. If anything, most students complain about not enough Java.
It's certainly the case that startups aren't emphasized. What's emphasized is research. For the professors that are really working with students, they are focused on getting them into a graduate program.
The type of research done at UT tends to be pretty forward looking and not the type of thing its easy to build a start up from.
But honestly, 99% of startups aren't dealing with the products of advanced university research. For the most part, a successful startup needs people that are solving problems that have already been solved before. It's not the type of thing that a research university really should be pushing students toward.
Two friends I went to UT undergrad with have started startups:
- http://www.buildasign.com - a very successful company that sells custom signs
- http://factorcode.org - While the startup portion didn't turn out to be commercially viable, their startup helped to improve Factor.
Comparing anywhere to Silicon Valley is probably unfair. I moved from SF to Austin are they are too different to seriously compare.
While UT can do better, there's nothing stopping the students from connecting with the various tech meetups and incubators around Austin. We're each responsible for our own education.
I went to grad school at UT (advertising) and sadly almost nothing I learned there applies to my day-to-day work (co-founder at a web design/dev shop). I was a tad bitter when I finished but channeled the frustration into motivation. There are people within academia who get it (usually adjuncts or people with private sector experience), but most don't and never will. That's why they're there.
The programmers I've worked with that have a CS background (formal or not) are a cut above those without. I'd liken it to a classically trained pianist. If you can play Beethoven you can easily figure out how to play pop, but the reverse isn't true.
Two of my friends had successful startups from UT Austin: audiogalaxy.com (founded in the Napster days, now doing mobile audio streaming) and adtuition/adtuitive (acquired by Etsy).
Maybe UT could be a better place for startups, but I never got the impression that it slowed them down for one second. They were just too focused on getting stuff done to worry about product competitions or entrepreneurship classes or whatnot. In fact, I have to wonder in some cases if those sort of things can be a distraction and give people the illusion that they are an entrepreneur without actually taking any risk or producing anything of value (the two essential ingredients, imho).
Am I missing something, or is this article just another variation on "my CS program didn't prepare me for my particular career of choice because it didn't teach me everything I needed to know on day one?" You can make this claim about any CS program you want and how it should teach agile development practices or Ruby or version control or whatever particular thing you've found useful during your day job, but that really shouldn't be the measure of a degree program. I think an undergraduate program should be measured in two ways:
- Does your education enable you to identify general types of problems and know how to solve them? (as in "oh, this can be expressed as a graph search problem and I can create an admissible heuristic, so I can use A* to find the shortest path between these two points, done")
- Did your education provide a solid enough understanding of the fundamentals to enable you to learn most things that you don't understand fairly quickly?
That's it. How hard is it to learn git (or your source control of choice)? A particular development methodology? iPhone programming? The average turnaround time I've seen from hiring a new college graduate to having that person be a meaningful contributor to a large project is between two and three months. I'd much rather that CS programs keep preparing them for more and different theoretical things instead of limiting that for the sole purpose of trying to make that transition period a few weeks shorter.
The title of this article is kind of BS. I went to UT's business school and studied Management Information Systems (I call it watered-down computer science), and I founded a successful startup with another UT grad.
The courses at UT, even in the business school, do not prepare you perfectly for startup world. But an important thing to realize is that being a startup founder is about desire and taking risks. It's about eclipsing the limitations of your formal education. There are plenty of successful entrepreneurs from even just my class at UT. The real founders pick up and go to San Francisco or New York to get shit done.
I agree with your general sentiment that the CS department should integrate with real world projects more. I don't think UT in general is a haven for future startup founders. But since when is it the role of a university to produce startup founders? That's a personal duty. Saying UT Austin is second rate at producing startup founders just doesn't make sense. The good ones, whatever school they happened to go to, go to Silicon Valley or their industry equivalent, so you aren't around them anymore to see.
This is more of a comparison of Austin tech to Silicon Valley tech, which, for the foreseeable future, Silicon Valley will win definitively. That's why the tech entrepreneurs that you're missing are out here. =)
I was in UTCS from '00 - '06. I got a chance to program in a diverse set of languages, learn a lot of theory, and get introduced to many practical concepts like networking, security, and databases.
They give students the tools, the entrepreneurial desire has to come from within.
I know the author is writing about the CS department, but a UT Austin grad (in communications I believe) , Brooke Moreland, just received $1 Million in funding for her startup Fashism.
It's completely true that UT's CS program teach you real world programming. But that's completely besides its purpose. UT's CS program is about the fundamentals. Every required CS course teaches knowledge and concepts that stand the test of time.
The required part of the degree is about 1/3 programming, 1/3 theory, and 1/3 computer architecture. The purpose of the degree isn't to teach you how to run a business, how to run a web stack, or even how to work in the corporate world. It's about learning the fundamentals of Computer Science.
I completely sympathize with the author. The whole time in UTCS I was thinking, "This isn't going to help me run a startup. I don't need this degree. Am I wasting my time?". But in the end, I realized that learning these fundamentals made be a better programmer overall.
I don't know who claimed CS programs were supposed to teach students how to run startups, but in my honest opinion, UT has a very good CS program.
49 comments
[ 6.5 ms ] story [ 152 ms ] threadAs far as startups, I do remember most of us wanting to work at Dell or AMD when I was an EE undergrad there. We would all go to the career expo and put our resumes in these giant piles. Never hearing back from anyone led me to explore other opportunities.
I graduated from UTCS and I see too many web programmers just load up RoR Gems to perform something that takes 10 lines of code. Same thing with jQuery libraries... young programmers are not learning how to program, and if you tell them there is this shortcut they will take it.
Foundation is needed, that's the hidden secret. After you master foundation, then you can hack any code no matter the language.
Intro to Programming helps students get their feet wet in C and the subsequent Data Structures and Algorithms courses are entirely Java. Intro to Microcontrollers is C and assembly.
Here's where UTECE falls flat, with respect to startups. After getting a decent foundation in "Real Programming", further specialization in tools useful for web startups (php/ruby/jquery) is left as an exercise to the student. Case in point, I'm a 3rd year Comp. E and I have yet to hear the word "database" uttered in a classroom.
A web apps class doesn't even have to be good. I would take it just to meet other hackers who are probably self-taught by now anyway.
I would guess that a majority of Universities are somewhat narrow in their focus and what their definition of success for their students is.
I was one of those seniors, albeit at UT Dallas. I wasn't alone, by far. I was a Comp Sci major, not a Software Engineering major, but the majority of my classmates probably couldn't write a piece of code that ran.
No real solutions, just reiterating the scary facts about people who call themselves programmers.
Yup, I didn't start using source control until after I graduated. CS education has a lot of catching up to do.
Needless to say, it was a real wake up call for me.
Not that there aren't plenty of educational opportunities surrounding the implementation of a good control system, just that teaching basic usage just seems to be a little simple.
Now not being able to write running code is a serious problem and it is frightening that someone could graduate after 4 years of computer science and never have written a working program.
And yes, I did basically just say that I'm probably not a very good developer. :)
Now if you are claiming 5+ years of professional experience and have never used a source control system that is likely to trigger a whole set of negative questions surrounding what kind of experience you actually have, but it isn't a deal breaker - just a warning sign.
They had some pretty challenging real world like projects to do (way more than I ever got a chance to work on so early, that is for certain) from identifying a problem, choosing the infrastructure that would be most conducive to solving the problem before the deadline, coding the solution and finally, testing the crud out of other people's projects...
Finally, at the first opportunity, a bunch of us broke off and started a company and so on etc. etc.
It is easy to blame culture and professors or other people in authority but ultimately the bulk of the community, in this case, are students. It is ridiculously easy to start a student organization. If I remember correctly, UT will even grant $700 or so to get started so there is little excuse not to generate interest and involvement. Then again, maybe it is better to just go hack and meet like minded students...
As a side note, I think it is a terrible idea to get business students involved in any attempt at a startup. They add very little and tend to want to take over in my experience.
Full disclosure: I graduated from UTEE and have worked at some really great small companies in Austin.
At UT, I spent 2 years programming both Haskell and C++, and then 2 years with very little programming. We focused instead on theorem proving and linguistics. This has a lot to do with Dijkstra's legacy in the department.
Implementation, industry, and start-ups are thought as an exercise left for the reader, and not part of curriculum. Throughout my career, I've always felt proud about this.
Big schools do not foster startups. I wonder if it's because smaller schools have more in common with startups? They have smaller staffs, leaner budgets, and typically fewer ridiculous processes. Key example: I just applied to Stanford and UTCS for my PhD. Stanford has clear info on deadlines and sent me an automated email reminder a few days before the app was due. UT Austin requires you to fill out two separate applications (one for the general UT system and another for UTCS), with different deadlines for each, inconsistent deadline info between the two systems, requiring duplicate information, and setting up a convoluted group of user accounts.
It is very hard to get big schools to understand startups. Virginia Tech was pushing very hard to encourage starting more tech companies, but their approach was to build a gigantic Corporate Research Center with isolated buildings and establishing formal "partnerships" with established or funded companies. Projects like the BT transit app get buzz only after they are a hit; and they don't try to compound the momentum by getting an order of magnitude more students working on their own apps, but rather let everything die down and force the few startup-friendly professors to start all over again.
As with most big organizations, the problems are fairly obvious. It's just nearly impossible to get them to change anything, especially since the main issue is a lack of willingness to change things.
Another example is that as recently as five years ago, UT's business school (McCombs) discouraged their graduating MBAs from diving into startups. Reason: their rankings were heavily influenced by the salary their alumni rake in immediately after graduation. So the official party line was to encourage them to go into big business with a cushy salary. Luckily that's changing now.
The startups are there; they are far and few now but rapidly increasing. I fully agree with you on the disconnect between academia and the startup community though - it's frustrating just how hard it is for Austin startups to hire UT talent.
* Austin is no longer an entrepreneurial town.
* The 10% rules hurts the entrepreneurial spirit.
* Geographic isolation hurts the entrepreneurial spirit.
* Little emphasis on consumer companies.
* No network effect.
* No virtuous cycle.
More details here: http://www.quora.com/Why-are-there-so-few-startups-founded-b...
CS departments have relationships with large corporations because they have money and sponsor research. Startups don't. This influx of money has warped the field. It's better to ask why there isn't more science in computer science than to ask why there isn't more business.
I only had one class that used Java. Different classes were taught in C, Lisp, Scheme, ML, Haskell, etc. If anything, most students complain about not enough Java.
It's certainly the case that startups aren't emphasized. What's emphasized is research. For the professors that are really working with students, they are focused on getting them into a graduate program.
The type of research done at UT tends to be pretty forward looking and not the type of thing its easy to build a start up from.
But honestly, 99% of startups aren't dealing with the products of advanced university research. For the most part, a successful startup needs people that are solving problems that have already been solved before. It's not the type of thing that a research university really should be pushing students toward.
While UT can do better, there's nothing stopping the students from connecting with the various tech meetups and incubators around Austin. We're each responsible for our own education.
I went to grad school at UT (advertising) and sadly almost nothing I learned there applies to my day-to-day work (co-founder at a web design/dev shop). I was a tad bitter when I finished but channeled the frustration into motivation. There are people within academia who get it (usually adjuncts or people with private sector experience), but most don't and never will. That's why they're there.
The programmers I've worked with that have a CS background (formal or not) are a cut above those without. I'd liken it to a classically trained pianist. If you can play Beethoven you can easily figure out how to play pop, but the reverse isn't true.
Yes. Most people aren't looking to start a company right after graduating college.
Startups are rare. Successful ones are practically endangered species.
Maybe UT could be a better place for startups, but I never got the impression that it slowed them down for one second. They were just too focused on getting stuff done to worry about product competitions or entrepreneurship classes or whatnot. In fact, I have to wonder in some cases if those sort of things can be a distraction and give people the illusion that they are an entrepreneur without actually taking any risk or producing anything of value (the two essential ingredients, imho).
- Does your education enable you to identify general types of problems and know how to solve them? (as in "oh, this can be expressed as a graph search problem and I can create an admissible heuristic, so I can use A* to find the shortest path between these two points, done")
- Did your education provide a solid enough understanding of the fundamentals to enable you to learn most things that you don't understand fairly quickly?
That's it. How hard is it to learn git (or your source control of choice)? A particular development methodology? iPhone programming? The average turnaround time I've seen from hiring a new college graduate to having that person be a meaningful contributor to a large project is between two and three months. I'd much rather that CS programs keep preparing them for more and different theoretical things instead of limiting that for the sole purpose of trying to make that transition period a few weeks shorter.
The courses at UT, even in the business school, do not prepare you perfectly for startup world. But an important thing to realize is that being a startup founder is about desire and taking risks. It's about eclipsing the limitations of your formal education. There are plenty of successful entrepreneurs from even just my class at UT. The real founders pick up and go to San Francisco or New York to get shit done.
I agree with your general sentiment that the CS department should integrate with real world projects more. I don't think UT in general is a haven for future startup founders. But since when is it the role of a university to produce startup founders? That's a personal duty. Saying UT Austin is second rate at producing startup founders just doesn't make sense. The good ones, whatever school they happened to go to, go to Silicon Valley or their industry equivalent, so you aren't around them anymore to see.
This is more of a comparison of Austin tech to Silicon Valley tech, which, for the foreseeable future, Silicon Valley will win definitively. That's why the tech entrepreneurs that you're missing are out here. =)
They give students the tools, the entrepreneurial desire has to come from within.
http://bits.blogs.nytimes.com/2010/11/19/social-shopping-sit...
It's completely true that UT's CS program teach you real world programming. But that's completely besides its purpose. UT's CS program is about the fundamentals. Every required CS course teaches knowledge and concepts that stand the test of time.
The required part of the degree is about 1/3 programming, 1/3 theory, and 1/3 computer architecture. The purpose of the degree isn't to teach you how to run a business, how to run a web stack, or even how to work in the corporate world. It's about learning the fundamentals of Computer Science.
I completely sympathize with the author. The whole time in UTCS I was thinking, "This isn't going to help me run a startup. I don't need this degree. Am I wasting my time?". But in the end, I realized that learning these fundamentals made be a better programmer overall.
I don't know who claimed CS programs were supposed to teach students how to run startups, but in my honest opinion, UT has a very good CS program.