TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask YC: do you use what you learned in school?

14 点作者 supahfly_remix超过 17 年前
How many of you actually get to use any of the information you learned in your CS classes in college? E.g., implementing red-black trees, operating systems, writing compilers, etc.<p>From reading this site, I get the impression that people write a lot of web GUI code, but that doesn't require a CS background. That's not to say web applications aren't interesting, and there aren't technical challenges to be addressed.

19 条评论

pg超过 17 年前
Few people have to do all the specific algorithms stuff we learned, because now that's all in libraries, but it's still useful to know how those things work, just as it's useful to a pilot to know how all the systems in his plane work.<p>I think the most useful thing I ever learned in a CS class was from Michael Rabin: that the best way to solve a problem is often to redefine it as something that's easier to solve. This turns out to be applicable to practically every kind of work.
评论 #121020 未加载
评论 #121029 未加载
评论 #121090 未加载
gcv超过 17 年前
All the time, believe it or not. For example, in one class, I learned about garbage collection algorithms, which I used to explain to a coworker why he was seeing a certain memory usage pattern in the JVM. I'm also glad I learned about DFAs and NFAs in my theory of computation class, because they come in pretty handy for figuring out some problems. My favorite incident was when the same coworker was suggesting project ideas, I used Turing's halting theorem to show him that his idea was impossible. Granted, that doesn't happen every day.
thorax超过 17 年前
Operating Systems and assembly-level courses taught me the foundation for what I need for low-level and kernel debugging that I do now quite frequently.<p>The other courses all been used quite a bit towards opening doors for me in starting businesses and job opportunities.<p>I honestly have to say that there's not a single CS course that didn't provide me a valuable tool which I've used. I'm not sure if that's normal, or if I am just the sort of person who finds uses for the tools in my toolbox.<p>I think the course (in the last 7 years) that has offered me the least would have been Linear Alegbra, but that's primarily because I didn't go deep enough after it to really broaden my skills to apply to those sorts of opportunities. I see lots of cases where I could use it, I just regret that I didn't improve my grounding in it because it would have opened more doors for me.<p>I'd say that the first 2-3 years of engineering, I used very little of what I learned in school. Very strange, but now that I'm working as a principal engineer/architect or on my own projects, that CS schooling has been incredibly valuable. It helps that I covered areas like AI, languages, graphics, and networking in my electives.<p>If you want a generic software engineering job, I don't think a CS degree is really ideal (depending on the school). For me, (i.e. someone who loves computer sciences), it was a perfect choice and I use those building blocks all the time now.
评论 #120933 未加载
iamelgringo超过 17 年前
I should be finishing my degree this summer, and I knew going into the program that I wanted to be doing web startups when I was done. So, I chose a program the focused more on Software Engineering than straight CS.<p>So, tailored my education along the lines of creating startups. My classes the last 2 years have included Intro to Database systems, Unix programming, Perl, Web Database Programming, Advanced Database systems, Distributed Systems, and Systems Programming. I've avoided Java and Microsoft technologies whenever I've been able to.<p>Every time that I get a semester break, I work on learning Django, or Ruby on Rails, and every semester web development comes a little easier to me. I've also been doggedly pursuing my own education, and I'm not relying on my school to give it to me on a silver platter. School is there to give you a framework, on which you continue your self-education. So, when I was taking my Distributed systems class, I read up on Erlang, and the other students had no idea what that language was for.<p>There are people in my advanced database classes that are editing SQL with notepad on windows. I was trying to tell them that a decent text-editor might improve their quality of life a little bit. Several of them didn't know what the difference between notepad and a decent text editor was. Sigh... I guess that it goes to show that it's not the school, it's the student.
henning超过 17 年前
Just the other day I had to use a non-trivial string algorithm for some batch string searching (searching for occurrences of any of a few million different strings on a large text corpus). A colleague is working on creating a little language for doing batch image processing, requiring use of undergrad-level compilers material.<p>As for the string problem I faced, I found an existing implementation in the language I was using, but I wound up having to modify it in order to cope with changing requirements.<p>If I hadn't learned about algorithms and automata in college, it probably would have been impossible for me to understand what I was using and I'd be flying blind. I probably would have instead not even known about the algorithm and would have believed that an inefficient naive solution was the only way, therefore making the project essentially infeasible (at first glance, anyway).<p>I'm also thankful that I had the opportunity to learn about functional programming because it made me a better programmer in imperative languages.
davidw超过 17 年前
CS classes? I studied Italian in school, and yes, I use it every day to speak to my wife, who is Italian.
greendestiny超过 17 年前
Its hard to answer because honestly I can't remember what I learned in uni specifically. As for using advanced CS topics let me give an example.<p>I'm writing a web app at the moment for orthodontics. On one hand its just overlaying a template on an image, but its using and manipulating a scene graph for the various parts of the template. The templates are defined by the relationship of various landmarks - these relationships (like the angles and distances between certain points) are represented in my own language so that I can send them to client for evaluation (as they move parts of the template) or to R so that I can generate a set of landmark locations that fit the relationships.<p>I probably make things more complicated than they need to be but I can't imagine not understanding these concepts. The power and beauty of those advanced CS topics is worth learning for itself. If they don't give you any insight as a programmer (whether you use them directly or not) then I don't think you've really understood them.
secorp超过 17 年前
The main thing I gleaned from undergraduate university (applied math) was how to collect and structure data in such a way that useful information can be derived from it. This has helped me in writing software for image processing programs to doing market research for new products. The key courses in this were signal processing courses along with the math and numerical analysis to understand the analysis techniques. The computer science courses I took in programming languages, compilers, hardware, etc. were very good practice in how to abstract a problem and codify it. I have not used too many of the specific languages or techniques in my professional life however as that tends to more or less keep up with the industry.<p>The most important things I gleaned from my graduate work about 10 years later (MBA and some more applied math) were how to present interesting data to people in a way that they too could interpret it and derive value from it, and how to manage social networks effectively.
rms超过 17 年前
The best thing I learned in school was typing in middle school. It is by far the most useful thing I have ever had taught to me.
评论 #121317 未加载
评论 #120877 未加载
评论 #120890 未加载
wheels超过 17 年前
It really depends on what you're working on. One thing that I've figured out is that you don't learn software engineering in college at all. Even if you took a bunch of courses in it.<p>However, a knowledge of algorithms can be invaluable. I've been out of college for six years and I can remember using at least:<p>- String search algorithms<p>- B-Trees, Tries<p>- A handful of graph algorithms<p>Other times stuff that I learned in college put me in quick striking distance for stuff that would be more work to understand without a CS background:<p>- Open key cryptography<p>- Word stemming algorithms, text coding<p>- Writing a query optimizer<p>- Digital signal processing<p>You can always find cool stuff to hack on without drifting into that territory, but if you actually dig CS-nerdiness, and are good at it, you'll sometimes get some of the more fun problems thrown in your direction.
omakase超过 17 年前
school taught me the grind and to not shy away from a challenging problem, seriously.
评论 #120968 未加载
brlewis超过 17 年前
I use high school algebra more than any other school learning aside from English.<p>I use a lot of the principles from 6.001 (Structure and Interpretation of Computer Programs) at MIT. I think there were other classes with useful learnings, but it's hard to remember specifically.
fgb超过 17 年前
All the time. Just recently one of guys I work with got stuck because he was using an STL priority queue to maintain a scheduler's data. The data was keyed on the time a scheduled event needed to run. The problem was that sometimes an event's time needed to change. Normally theses priority queues do not let you change items on the fly. Things get added and they come out based on their priority. He figured out how to override this behavior but couldn't understand why the priority queue was broken after he modified an item inside the queue directly. So, I had to explain to him how heaps and priority queues worked.
whacked_new超过 17 年前
Even if it doesn't look it, you should, unless you went to school for nothing. Broad exposure to a particular subject, if anything, hones your intuition about it, such that even if you make "blind guesses" about solutions, they are better suited than those without the education.<p>At the very least, you will know the names of things and where to start looking, which prevents you from reinventing the wheel. This difference, in my experience, is significant.<p>Don't overstate the importance of a degree, but don't understate the value of knowledge from school; it's knowledge, after all.
caudicus超过 17 年前
Yes, you can get away with doing web programming without a CS background, so this practice does not "require" such a degree - but having a CS background will only make you better at what you do. In addition, you will utilize some of the knowledge you acquired in college in places where you would least suspect.<p>That and the real point of education is to learn how to learn and think. View it as a mental workout if you truly do tell yourself "this is pointless, I am never going to need to know this". Remember that it will only make you stronger in the end.
yummyfajitas超过 17 年前
Well, I'm not 100% sure you are asking for my experience, but here goes anyway (I'm a mathematician/physicist, by training and profession, and I don't write web GUI's except for fun).<p>However, I'd say that I regularly use stuff from about 4-5 of my college/grad school classes. Virtually everything else I learned "on the job" (i.e., in grad school, doing research).<p>Oddly enough, I recently found myself using some tricks I picked up from a machine learning class for something completely different (the philosophical kind of quantum mechanics).
dhouston超过 17 年前
1) algorithms and distributed systems<p>2) my negotiation class (although practice is more useful :P)<p>3) getting used to busting my ass/grinding through problems
edw519超过 17 年前
100% of what I use is from work.<p>0% is from school.<p>Not a judgement. Just an observation.
wlievens超过 17 年前
I work on a compiler for a living, so yeah I kinda use my compilers course. And pretty much all the other CS courses.<p>I think people who say their education hasn't been valuable just picked the wrong education.