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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Ask HN: If you could go back to study any CS-related field, what would it be?

72 点作者 offbytwo大约 7 年前
I&#x27;m a sophomore in college, and feeling pretty bogged down by the not-so-relevant required courses at my school. I love the CS courses but I keep finding myself looking at entry level code monkey jobs and thinking of dropping out. I work part time as a developer right now and I enjoy working far more than doing any of my homework, so this is something that is on my mind a lot.<p>What are some lesser known areas of CS that would be worth studying while I have the chance? I would say the subjects that excite me the most are Machine Learning, p2p tech like IPFS, UX-design, and alternative computer-interface things (like brainwave sensors, VR, and that jawbone thing from MIT that was posted a few weeks back [1]).<p>[1] http:&#x2F;&#x2F;news.mit.edu&#x2F;2018&#x2F;computer-system-transcribes-words-users-speak-silently-0404

39 条评论

jimmies大约 7 年前
As a former-dropout myself [1]: You might some of the courses utterly stupid now, and you might have many doubts about the usefulness of a degree, but I think ultimately a degree is very very much worth it, both intellectually and for logistics reasons. A degree will open doors to you, for example, most jobs will throw your resume right away if you don&#x27;t have a degree. Some countries won&#x27;t allow you to immigrate if you don&#x27;t have a degree. There are many dreams that require a degree.<p>The only reason that you can justify dropping out is that either (1) you think you can&#x27;t possibly learn anything useful from the professors that are teaching you and you&#x27;ll rebuild&#x2F;repay what you didn&#x27;t learn one day (and you better have to have a good answer when you&#x27;ll do that right now), or (2) when you have a grand startup like Bill Gates or Mark Zuckerberg. But I don&#x27;t think that&#x27;s why you&#x27;re wanting to drop out now. So don&#x27;t drop out. Keep pushing.<p>For me, I wish I learned assembly, kernel development, stats and machine learning. First two because I love to, the latter two because they are useful.<p>I am now almost finished with grad school, and I feel like I know nil. But in a very Lao-tzu way, I think the biggest enemy of mine is myself (the willing to sit my ass down and learn), not that these can&#x27;t be learned by myself. Lately, I think I somehow I overcame that problem and was able to read, learn and make a lot of stuff on my own. I think the same thing can be said about anyone who had the patience to get a degree as well: It means they are willing to deal with things they don&#x27;t totally enjoy to get what they want. As Lao-tzu said, patience is a good virtue by itself...<p>1: If you need to verify, read the entry called crankshaft #2 on my blog on my profile.
评论 #16885389 未加载
评论 #16883030 未加载
评论 #16882698 未加载
评论 #16894917 未加载
评论 #16883883 未加载
LocalMan大约 7 年前
I dropped out in 1971 for reasons similar to yours. I am now retired. I&#x27;ve supported myself by writing software since the 1970&#x27;s.<p>Dropping out has cost me several hundreds of thousands of dollars. I don&#x27;t know how many. Lots of companies pay more just for having a degree.<p>Consider transferring to a cheaper and&#x2F;or easier school. You&#x27;ll have more time to yourself, which is often a good thing. Unless you&#x27;re actually depressed.<p>If you&#x27;re interested in CS, math is almost always useful. I wish I&#x27;d had more. Most of the topics you list are research topics only available to research-level academics.<p>Changing schools is the one thing I regret not trying. Another thing to consider is to change girlfriends. Or find a better one. That can certainly impact your overall view of life. In other words, don&#x27;t ignore the social aspects of choosing a school.<p>In the 70&#x27;s through the 90&#x27;s I had to contend with management that was often quite stupid. And quite often did not even know what a computer really was. You can avoid situations like that more easily if you have a degree.
gitgud大约 7 年前
No-one has mentioned Cryptography. Although it seems boring, the applications are almost ubiquitous. It&#x27;s used everywhere in internet connected systems, secure software and data storage (to name a few).<p>It would seem that would get to work on the large and important things if you pick up cryptography as a skill.
评论 #16882791 未加载
评论 #16887429 未加载
gnodar大约 7 年前
I would take some Electrical Engineering classes, maybe even minor in it. Given an abundance of time, I would also take some higher level math classes. Based on your interests a broader exposure to these fields, which are strongly related to CS but only lightly-to-moderately covered in a standard CS curriculum, can only help.<p>For me personally, I would do a deep dive on distributed architecture, which you may also be interested in given your interest in p2p.
评论 #16882706 未加载
edejong大约 7 年前
The ones that will help you long-term: management, requirements analysis, distributed aystems architectures.<p>Technologies come and go and you’ll be autodidact during your career. Management, however, will help you identify how to become more effective, regardless your actual posistion.
评论 #16882647 未加载
nojvek大约 7 年前
Compilers - every programming language uses this.<p>Databases - Btrees, indexes, distributed key value stores. The world runs on databases.<p>Graphics - if you like games, how a 3D scene is rendered, photo realism with Ray tracers, GPU pipelines and OpenGL<p>AI and Machine Learning - tons of fascinating problems and algorithms.<p>I’d say focus on the basics. Hash tables have remained mostly the same since they were invented. C still uses pointers, the basics are fundamentally so powerful that they are kind of eternal.<p>When I hire someone, i’m looking for someone with strong fundamentals. They understand the basic datastructures, algorithms and how a computer works.
your-nanny大约 7 年前
I regret not taking linear algebra (not required by most programs, but very relevant to what I do), computer graphics, and software engineering methodology. If I had taken these classes, I would not have taken other interesting and useful coursework that I would regret not having taken. Hard to measure which path would have minimized my regret. Possibly none, because it may be that degree of regret isn&#x27;t a function of the path you take.
评论 #16895171 未加载
Endy大约 7 年前
Being honest, if I could study any CS-related field, it&#x27;d be pretty simple - advertisement technology management. I&#x27;d want to know how to get in the game of stealing people&#x27;s private data for money; it seems that&#x27;s the wave that&#x27;s going to be cresting soon - and people always want to know more about other people.
manish_gill大约 7 年前
One thing I&#x27;ve been always fascinated with was the Symbolic Systems course at Stanford. It was a fascinating curriculum involving a mix of Computer Science&#x2F;AI, Philosophy and Linguistics. I&#x27;ve tried searching for material online, but it&#x27;s a course taken by only a few people every year and there isn&#x27;t a whole lot of information available online. If someone reading this studied that&#x2F;or knows about the methodology&#x2F;syllabus, I&#x27;d love to delve into it!
评论 #16883085 未加载
jahewson大约 7 年前
I felt exactly the same way and made it through my undergraduate degree, worked for 6 months, realised that being a coding monkey was going to consist of repeating those same six months for decades and promptly returned to school, ending up with a PhD.<p>The best advice I can give is to find a mentor - someone who captures your imagination. Most professors are desperate for enthusiastic students to do stuff for them!<p>And yes, do more math. You need people around you for that.
评论 #16882712 未加载
msoad大约 7 年前
Databases. Those are the most fascinating and complex programs I know but I have no idea how exactly they work.<p>Most of complex algorithms and data structures are used in databases.
评论 #16883104 未加载
baus大约 7 年前
I agree with everyone who says focus on math and stats. The best programmers I have worked with have come from a math background. This is an area I greatly underestimated in my education, and if I went back to school now it is where I would focus
muzani大约 7 年前
I made the perfect choice when starting with Android. Great job prospects, great pay, allows me to go in and out of a lot of fields.<p>But if I could try over, I&#x27;d focus more on small skills instead of breadth. Full stack is nice to know but ultimately not useful. Anyone can learn to program something over 3 months. That doesn&#x27;t necessarily make you valuable.<p>What makes people valuable is being better than other people at a skillset. Like right now we really need a good AngularJS (1) programmer, but that&#x27;s hard to find.<p>&quot;UI&#x2F;UX guys&quot; are a dime a dozen, but what&#x27;s extremely valuable are the ones who can prototype quickly, write their own CSS&#x2F;HTML. These guys will be core to any group.<p>There will always be new, sexy tech. The hard part would be coding the algorithms. The guys who are cashing in on e-commerce know their Big O. The guys who are well paid writing code for Uber know their algorithms. The rest will change, and will either be reading documentation or copy paste.
kyleperik大约 7 年前
I feel as though many of the comments here are throwing out fields because they&#x27;re interesting. I think college is a very long term investment that will change what you&#x27;ll be spending your valuable time on for the next 4+ years.<p>I agree with many comments that suggest pursuing something more &quot;meta&quot; like management or architecture that will help no matter where you land in 5-10 years. Although personally, I&#x27;d say experience is practically the best education you can get.
jimpudar大约 7 年前
Not exactly a &quot;lesser known&quot; area, but computer architecture and operating systems. No matter what you are doing with computers, no matter what high level language you are using, you will eventually need to understand what is happening &quot;on the bare metal&quot;.
评论 #16882549 未加载
floatingatoll大约 7 年前
Factory operations. In absolute seriousness! If you want to get years ahead in Ops, learn queuing theory and applications years ahead of your CS peers :)
评论 #16882305 未加载
brightsize大约 7 年前
Geospatial technologies. Cartography, visualization, remote sensing, geospatial databases. If you&#x27;re good with Python you&#x27;ll go to the head of the class. My <i>impression</i> is that most students and practitioners in GIS don&#x27;t have CS backgrounds and thus programming and relational&#x2F;geospatial database (e.g. PostGIS) skills are in demand.
tytytytytytytyt大约 7 年前
I would take all of the electives I could, if I could go back in time, even if it required staying an extra year. Graphics, networking, databases, ML, everything. I would even go for the masters, really. The undergrad degree is in a sense the prep work for the really interesting stuff.
bennyp101大约 7 年前
Something that I looked at doing recently was getting into law around the internet&#x2F;AR&#x2F;cryptography etc.<p>It seems that there are a lot of people currently making laws and rulings on things that they don&#x27;t understand - and there is going to be a lot of change coming soon with the way technology is going.<p>Unfortunately I can&#x27;t afford the time or money to do it now (I think it was like 6 years to just get qualified) which is a shame.<p>(I never went to university or even finished my A-levels, I just went straight to get a job at 17, looking back 20 years later, it hasn&#x27;t hindered me in anyway, but I do think that going would have had a positive effect and maybe changed my career)
xfz大约 7 年前
Don&#x27;t drop out; you&#x27;ll spend your whole career trying to push open closed doors (it gets easier with many years&#x27; experience or during an acute skills drought, but the issue never goes away completely).<p>Study whatever you enjoy most. It&#x27;ll be easier for you to excel that way, and you&#x27;ll still get the all-important degree.<p>Once you get your career underway, continue to learn and work on whatever interests you most; be prepared to continually learn and adapt over the decades. New technologies and ideas will come along that haven&#x27;t been imagined yet, while some of the stuff you study at uni will be surprisingly relevant later.<p>Best of luck!
评论 #16892744 未加载
quickthrower2大约 7 年前
Study something that makes you excited. For me, if I had enough money to retire and I am just doing this for fun&#x2F;intellectual I&#x27;d probably look into 3D graphics. I&#x27;m not a big nut on Machine Learning. Programming Language design would be kind of cool but I&#x27;m afraid it would get a bit dry. I did well studying topics I could visualise. Therefore I did well at analysis at university because you can visualize limits then transcode that to a proof. But vector spaces blew my mind out and I didn&#x27;t really enjoy that.
peakai大约 7 年前
Dev work probably feels enjoyable since you end up creating things for the product and see where it impacts the business everyday. Coursework is a little more abstract, but you can still make it enjoyable by talking with peers and professors to find out what is interesting and chic local to you. You might try taking some statistics, algorithms and engineering courses since you seem attracted to the by-products of the theory there. Good luck, and hope you don&#x27;t drop out!
keynan大约 7 年前
Pick what your passionate about and learn it deeply. However you would be well advised to take atleased one course on:<p>- networking, focus TCP - Compilers, focus theory behind lex and yacc, or equivalent - parallel algorithms, focus on lock free and message passing - A.I. focus on or-tree search and genetic emergence. (Not ML, important but that comes later) - functional models of computation and recursion.
iliketosleep大约 7 年前
Front end development. It&#x27;s incredibily useful for when you get an idea for a product and want to whip something up.
aurelianito大约 7 年前
My suggestion to you is to take any courses where a 10 years old book is not outdated. This probably includes almost all math, algorithms, big o notation, databases, OS fundamentals, etc. And it probably does not include things like machine learning, HCI, etc.
pfzero大约 7 年前
I think that this website gives a great study roadmap for computer science: <a href="https:&#x2F;&#x2F;teachyourselfcs.com" rel="nofollow">https:&#x2F;&#x2F;teachyourselfcs.com</a><p>You should definitely consider choosing some topics from the and study them.
azhenley大约 7 年前
Human-computer interaction!<p>I didn’t have any exposure to this as an undergrad but have been doing research in the area for my PhD, and now I’ll be starting as a professor in August. I think it can benefit you in just about any job you go for.
shiado大约 7 年前
Information Visualization. It fits in really nicely with the ML and big data hype.
adamnemecek大约 7 年前
Photogrammetry. It’s the art of reconstructing 3d models from several 2d images.
amorphid大约 7 年前
Hey OP, I&#x27;m a self taught programmer and former tech recruiter. I wish I had a BSCS for the following reasons:<p>- it would have been easier to get interviews at places I wanted to work when I had less experience<p>- it would be easier to get interviews now at places I want to work if I had prior experience at companies like the ones I could have joined with a BSCS<p>- I&#x27;d finally know what I could have learned in school but didn&#x27;t, and what I just needed to learn on my own<p>- I&#x27;d spend less energy on feeling like I have something to prove to BSCS grads<p>If I were in a BSCS program, and I wanted to drop out, I&#x27;d do the following before bailing:<p>- prove to myself that I could power through boring work AND do it well to reduce the chances that I&#x27;d get fired from a job because I couldn&#x27;t&#x2F;wouldn&#x27;t do the crap work that job required of me<p>- I&#x27;d seriously look at my finances to understand how much time I could afford to be unemployed, because I was damn broke in school, and if I got canned from a good coding job, and had to take a crappy non-coding job, I&#x27;d have less time to code, which would make it hard to get another good coding job<p>- immediately start living as cheaply as possible on cash I had, only using student loan money for school expenses, and completely staying away from credit cards<p>- line up a job before dropping out, and keep still playing student well enough until I had that job<p>- talk to my professors about my challenges in remaining interested in school, and see if they can offer me some perspective that might help me appreciate the pros and cons of staying in school, because unlike your boss at work, you can talk to professors about your non-growth&#x2F;personal development<p>- find some professional mentors who could guide me on how to be an employee and&#x2F;or entrepreneur<p>- stop throwing around derogatory terms like &quot;code monkey&quot;, because that kind of job may be the I could get, and I wanna certain I&#x27;m not insulting people with whom I&#x27;ll be working by unintentionally coming across as an a<i></i>hole<p>- figure out how to pay for health insurance
jxub大约 7 年前
I just wanted to chim in and say thank you for the question, @offbytwo. I&#x27;m in a similar situation now and these answers provide a better mental model to act on.
glebashnik大约 7 年前
For machine learning take math, especially advanced stats. Algorithms and architecture will help you to get high-level CS jobs. A couple of business courses will help you to advance your career.
mooneater大约 7 年前
The degree itself opens doors that can remain closed to you otherwise. Get some theory in you and you will stand out from those without it. There is lots of time to be a code monkey.
评论 #16885073 未加载
rajacombinator大约 7 年前
Even if you can’t find interesting courses (unlikely), you could use the time to work on a startup or for “personal learning” experiments.
jbros大约 7 年前
I would do whatever these guys are doing at [lambda the ultimate](<a href="http:&#x2F;&#x2F;lambda-the-ultimate.org" rel="nofollow">http:&#x2F;&#x2F;lambda-the-ultimate.org</a>). This all looks strangely fascinating.
macawfish大约 7 年前
Math!!!
purplezooey大约 7 年前
Computational Phrenology
tristanj大约 7 年前
Econometrics.<p>I completed all the pre-reqs too, just never got around to taking it.
评论 #16882302 未加载
megadeth大约 7 年前
Automata and FSM