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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Ask HN: Do web startups hire CS majors?

10 点作者 raptrex大约 16 年前
Right now im a 1st year student at Cal Poly Pomona as a computer science major. I have been interested in building web applications, however, there are no CS classes at my school that teaches web development. I know i can learn it on my own (i know html, basic SEO, CSS, some php). I was wondering if startups hire CS majors or should i switch to CIS, which has a few web classes related to the internet, but CIS is mostly buisness related from what i know about it. If startups do hire CS majors, what do they do?

7 条评论

strlen大约 16 年前
Having interviewed people fresh out of college for both web-startups and established companies, from my view the most important thing you'd need to know if you want to work in a web start-up are:<p>1. how to get around a UNIX system (be comfortable with emacs and/or vi, know your shell, be able to install Apache/your favourite web frame <i>yourself</i> on a machine<p>2. know basics of TCP/IP networking (know how HTTP works, be able to debug it using telnet/netcat and tcpdump/pass through proxies)<p>3. know databases (not just "SELECT Ajax FROM Php", but know about indices, joins and normalization/de-normalizations)<p>4. or more dynamic languages (Python, Perl, Ruby, Php etc...) as well statically typed as object oriented languages (Java is common for enterprise web development)<p>These are really just the basics (give or take). Most of these (except for databases and dynamic languages) are a standard part of any CS curriculum. Databases course should be readily available as an in-major elective. Dynamic languages -- if not available as an elective -- should be easy to pick up as you go along.<p>These are also <i>very nice</i> to have and would make you not look like a "PHP script kiddie":<p>* Understand how your OS works, at the least be comfortable using strace and gdb and digging around /proc and tuning sysctl/proc/kernel parameters<p>* Understand more about networks: more about DNS, know how a load balancer works (NAT)<p>* Know C/C++: that's what the extensions for your dynamic programming language are written in, that's what your web server/web proxy and database are (usually) written in.<p>* Know algorithms, data structures. Be able to do bitwise manipulation (e.g. how would you track on which day of a month a user visited a site?). Understand the advantage a message queue would provide, understand non-blocking I/O and threading/forking models.<p>* Know more about OO, meta-programming/reflection, functional languages -- be able to hack up your own ORM layer/ad-hoc MVC.<p>There are jobs in web development that don't even heavily touch HTML/CSS/Javascript and tend to be heavier towards algorithms, databases and UNIX hacking. These are called "back-end jobs". The other end is "front-end", which requires more familiarity with UX principles/Javascript/ActionScript/Flex and basic graphics design/layout in addition to HTML/CSS. The specific hot things (current frameworks, etc...) change but the general of computing is an invariant. The latter is what you learn in computer science classes.<p>Lastly, you should absolutely do programming/web-development for <i>fun</i> -- first, it's the way to learn things you won't learn in class (or at your first job). Secondly, many start-ups operate under the maxim of "don't hire anyone who doesn't code for fun", thirdly -- chances are, working for a web start-up won't make you a millionaire: if you don't find programming to be fun and worth your time (making long hours non-monetarily rewarding), enter a field that you <i>would</i> (you're lucky to be amongst the few who has the chance to choose).
评论 #500031 未加载
评论 #499888 未加载
triplefox大约 16 年前
You are simply conflating CS with programming, which is very commonplace.<p>Programming is the craft/art skill of manipulating digital code and data. Within programming you can learn about specific domains - for web apps that would mean databases, networking, a host of standard formats and protocols, and user interfaces. Many commercial programmers go their entire career focused only within one or two domains.<p>Computer science is the academic study of computation. As the rigorous curricula of today would have it, it is a more mathy endeavor than programming by itself. In particular there is a focus on provability and formality that doesn't come up in commercial programming.<p>Basically, stuff you learn in CS won't help you ship the ideal mix of features, stability, and time cost for (insert app here). What it will tell you is about a variety of methods with which you may approach the underlying computation problems and direct your own original research efforts.
评论 #499817 未加载
评论 #499839 未加载
评论 #499803 未加载
Zev大约 16 年前
If startups hire CS majors, they code. CS at your college probably isn't pure theory, but rather closer to Software Engineering. And you can't expect college to teach you <i>everything</i> that you'll need to know on your own.<p>Take this summer and spend it hacking on a project you find interesting. Learn a particular language (preferably one that your college <i>wont</i> go over. Be it Haskell, Ruby, a Lisp variant, whatever) and learn it as well as you can in a few months.<p>Then when the next summer rolls around, you'll have two years of class + that summer building something on your resume. And that summer will help out a lot in terms of practical experience working on a project (as opposed to a 1-2 week assignment that you drop as soon as it's handed in for a grade).
smidwap大约 16 年前
Just finished interviewing 5 programmers, all of them CS undergrads or grads, for my startup. (This might be a bit biased because CS majors were the ONLY ones we interviewed so far.) Two things occurred to me during the interview process: 1) CS majors have some formalized training in designing software, and 2) the most important part of their resumes was the experience/internships/projects section. Nothing can replace the work that is done outside of the classroom. Classes can't expect 40 hours/week of coding but real jobs can. So, initiate projects yourself or find internships that will actually utilize and grow your skills.<p>I am a sophomore in college, so take my advice for what it is. But, I wouldn't think I'm too far off from reality. Good luck
评论 #499825 未加载
ninjaa大约 16 年前
A good way to get a leg up:<p>1. Do some jQuery tutorials and really bone up on flashy javascript.<p>2. Learn to use any popular web 'stack' - LAMP is easiest on *Nix servers, RoR and Django are not rocket science. Nor is ASP for that matter.<p>3. Go out and find a web designer, or yourself bone up on design and CSS<p>4. Find easy contract work such needs basic web programming. Eg "install a picture gallery in my website" = $200/300/400.<p>5. Move on up with the contract work or launch your own site.<p>6. ???<p>7. Profit!<p>If you do this through college (and I didn't start until my senior year, a deep regret), you will level up to the forefront of web programming by the time you graduate.<p>Also, now that web is mature - there are multiple paths to success. I think getting the Server Side Language/ Javascript/ CSS/ HTML loop right in your head is the most important. You can follow that up with MVC frameworks, Adobe Air, Silverlight there are at least 4 or 5 solidly "employable" paths you can take
nailer大约 16 年前
Have been working with Linux for over a decade. Had 9 interviews for a site reliability engineer role at Facebook here (which I gather is considered a startup until it becomes profitable or gets bought), before I got a 'no'. Interview that lost it for me was a guy (who'd just graduated college) presenting a page of math and telling me to write some Python to implement it. This wouldn't have been my job function, but I couldn't read the math = 'definite no hire' in Facebook speak.<p>Worked out better in the long run.
评论 #499890 未加载
rms大约 16 年前
<a href="http://code.google.com/soc/" rel="nofollow">http://code.google.com/soc/</a> maybe?