TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Things They Don't Teach You In Computer Science

25 pointsby wushuporkabout 16 years ago
Like many of you, I have a Computer Science/Engineering degree. Over the years I've become somewhat entrepreneurial and have tried venturing into startups. (I'm still chipping away at it). As I became more and more involved in the startup world, I've come to realize that my education gave me the technical skills I needed but did not adequately prepare me for the real world. What are some of the things you've learned over the years if you could teach or tell your old self that would save you lots of time and agony. I think the HN community here has a wealth of knowledge and experience that could be really helpful to anyone looking to start their own thing.<p>For me: 1) broadening my horizon in terms of nontechnical skills. I used to just read technical books and dive deep into technology whilst ignoring most other skills such as business, marketing, finance, social etc which is very detrimental. 2) networking and forming new relationships. When you are in school and have a job, your social network tend to be your classmates and your coworkers. I think that if that's all the people you hang out with, you develop this narrow vision of the world and miss a lot of opportunities that may be just around the corner if I had just bothered to venture out of my corner of the world.

17 comments

spitfireabout 16 years ago
1. Girls are just as horny as you are. 2. Those business guys are even dumber than you think they are. (doubly so for the current crop of dotcom guys) 3. What's new is not necessarily better. Do not ignore the lessons (and successes) of the past.
评论 #569225 未加载
评论 #569451 未加载
ziadbcabout 16 years ago
I think that we all experience this to one degree or another. Albert Einstein described the phenomenon as this:<p>"The knowledge that we have can be analogous to a circle. Inside the circle is what we know and what we call knowledge; outside the circle is what we don't know and need to explore. As our circle of knowledge expands, so does the circumference of darkness surrounding it. So the more we know, the more we feel that we don't know."
sidabout 16 years ago
what you have said is true. I mean im from oz and when we were all at uni there wasnt really much talk of startups and starting our own businesses, not in my circle anyway.<p>It was all about getting the best grades to kick butt at the interview. Because that was my circle thats all i knew at the time. Now after doing the <i>grades</i> and doing the <i>9-5</i> i know NOW what i would have told my younger self. I would have told my younger self that there is a better way.<p>The funny thing is ! i know that my younger self would just tell my current self to buzz off cuz a stable job is the way to go, its tried and tested.<p>I guess the lesson learnt is there are alot of things the computer science/engineering degrees dont teach because its not possible to teach these things unless someone has gone through the motions and their own experiences click in.<p>Comp Sci/Eng degrees can give ideas and direction but sometimes at the time you dont see them as ideas, you just see them as a waste of time cause you want to go to the next programming, algorithms or electronics class, not this stupid, project management or business for engineers class ...
评论 #569265 未加载
评论 #569230 未加载
ScottWhighamabout 16 years ago
Two things that hasn't been mentioned here yet:<p>#1 - is that you need to develop a filter for the advice you'll get. You need to learn when to ignore advice, how to make it so that you don't piss people off when you ignore their advice, and how to handle it when you do ignore their advice yet they were actually right. You also need to develop self confidence in your own independent decision making ability<p>#2 - is that, just because someone has "been there, done that, been successful" doesn't mean that their advice/approach will work for you. Many startups hire on big, powerful people who have had exits/successes yet they don't work out. There can be any myriad of reasons but just remember: "past success != future success".
hasemanabout 16 years ago
Your QA guy (if you're lucky enough to have one) is you best friend in whole wide world. When he/she finds bugs in your code...hug them and buy them beer, because your users/clients could have found them instead.
carterschonwaldabout 16 years ago
More generally what they don't teach enough about in university is knowing when to make time for certain people and knowing when to stop making time for certain people. This is a skill that I think is really key, and no program of intense academic learning will naturally lead to you knowing such.
jimflabout 16 years ago
The more people in middle management (i.e. people who are not officers and people who are not leaf nodes) the more difficult it will be for the organization to make rational decisions, and the more compromises will be made to the quality of the product in lieu of other considerations (schedule, metrics based on invalid assumptions, etc.) In general, these people will find that they have no actual way to contribute to the product, so they will attempt to contribute to the organization instead, which bogs everyone else down.<p>On the technical front, CS will not teach you anything relevant to the practice of software development. You will not learn things like how to correctly factor code for automated testing, or good strategies for source code control branching and build pipelining.
trapperabout 16 years ago
Write something that solves a pain. Then drown yourself in that pain and see if your solution really solves it. Few people take step 2.
csomarabout 16 years ago
In school or universities, generally they teach only the thoerical part. The real world scenario is another important part, that everyone discover it himself. It's later called "Experience" and "Career".<p>If you want just to be an ordinary guy, just take a job. Most luckily, you won't need to know much about finance, business... you'll just do what they want you to do.<p>However if you want to build your startup yourself or start a company and be the leader, then you need knowledge. You don't really need deep knowledge on Marketing, but just small ideas to get you started.
评论 #569293 未加载
critkeabout 16 years ago
Build something. Then listen really hard to what people say. Don't take it personally - just make it so it works for people. And Iterate!
10renabout 16 years ago
The main thing is to be aware that there is a whole reality out there that you don't know <i>and nobody else does either</i>. If you can crack it, you can have great success.<p>Cracking it takes alertness and endurance more than raw intelligence, because inspiration comes from new data - not from solving a pedagogically designed problem. New data is, by definition, not known beforehand. You get new data (that no one else has) by looking, by being there and doing the work, and noticing interesting opportunities.<p>In a way, marketing is more aware of this <i>unknown</i> that science, because it changes more quickly for marketing (and no one believes a marketing success represents the fundamental underlying truth of reality). That is, marketing says "what do people want?" I think it's this, you think it's that. Let's ask some people - but they don't know either until they see it. OK, so let's <i>invent the future</i>, and see if anyone likes it once they see it. But underlying is the conviction that <i>we don't know</i>. For a Science, computer science is full of dogma and religion (it even has "religious" wars). Oh well, paradigms are inevitable I guess.<p>I like paul graham's definition of business, "build something people want" = new product development + marketing.<p>A tech degree teaches you some theory about "build something" (and not the practice of source control, testing, deployment, usability etc); but it teaches nothing about "people want", which is basically looking from the user's point of view.<p>I don't think there's any silver bullet that would help my younger self overcome the vampires (to maintain the metaphor). I believe that marketing is the key skill, which I define as making something that is potentially useful to people, and then bringing about the state of affairs where it is actually being useful to many people each day.<p>There are all kinds of entrepreneurial ventures; mainstream ones are popular at the moment, which Y-Com advocates (or appears to); but there are also highly technical ventures in the general category. For me, a deeper grasp of discrete mathematics might have been useful (but it's never been intuitive for me, and I note that the people for whom it is intuitive seem to lose their connection with what is usable for ordinary people - I welcome counter-examples to this point). I'd also like a deeper grasp of parsing theory (but much of parsing theory seems inappropriate for the way I want to use it - so maybe it's best to appreciate the state-of-the-art, without drinking its koolaid).<p>For me (very personally), it's crucial to (a) be able to build something; (b) to notice that a problem can be solved fundamentally better (and see how to solve it); (c) to be able to communicate the solution in terms of what some people need.<p><i>Disclaimer</i>: As you'll have sensed, this is a personal philosophy rather than ordinary business practice. Many, <i>many</i> successful businesses have no need of this focus on the unknown. But this is the basis of many huge, cool, revolutionary, "disruptive" businesses.<p>The one thing I wish I'd learnt (it's more an attitude than a skill): avoid premature optimization <i>including usability</i>. Usability is extremely important; it's second only to <i>understanding what you are doing</i>. Keep things simple, even at the expense of usability. Don't add special cases that make it easier to use (not yet). If you let it get complex, you might still just understand it in isolation, but as it combines with other complexities, sooner or later you won't. This goes for a business as a whole, as well as for a computer system.
评论 #569263 未加载
sownabout 16 years ago
One thing I wish I could have more experience or training with is office politics, at the very least to defend myself with. There are a ton of dirty tricks that unscrupulous co-workers can and have tried, to pull on me and I wish I had more of an idea of what goes on.
cruise02about 16 years ago
Here's a list from a few months back. <a href="http://stackoverflow.com/questions/258548/what-is-the-most-important-thing-you-werent-taught-in-school/258559" rel="nofollow">http://stackoverflow.com/questions/258548/what-is-the-most-i...</a>
评论 #569470 未加载
elaiabout 16 years ago
1. Business school people are more entrepeureally minded and tend to have more of a personality (no duh...)<p>2. You can take school courses that would help you later in your career, like several business courses. I would take the more concrete ones, like business law or introductory accounting, otherwise the value can be questionable. With business law, those contracts you sign suddenly make ALOT more sense. (And what implied statues would be put in your business activities). With accounting, you know how all the financial statements work. I've found 1st level marketing classes tend to be a bit stupid although. Too abstracted from real applications.
slackerIIIabout 16 years ago
Just use a hash table.
tsallyabout 16 years ago
How to program well.
banned_manabout 16 years ago
How to read code, use version control, write code in a professional environment, find libraries that can help you, and keep abreast of current technology. I think that CS grads should be expected to be contributing to open source projects by senior year.<p>The marketing, business, and work/life balance problems are important, too, but they don't really belong in a CS course, and CS professors are not experts on these topics anyway.