Ask Slashdot: Computer Science Freshman, Too Soon To Job Hunt?
First time accepted submitter stef2dotoh (3646393) writes "I've got about a year of computer science classes under my belt along with countless hours of independent online and tech book learning. I can put together a secure login-driven Web site using PHP and MySQL. (I have a personal project on GitHub and a personal Web site.) I really enjoyed my Web development class, so I've spent a lot of time honing those skills and trying to learn new technologies. I still have a ways to go, though. I've been designing Web sites for more than 10 years, writing basic PHP forms for about 5 or 6 years and only gotten seriously into PHP/MySQL the last 1 or 2 years on and off. I'm fluent with HTML and CSS, but I really like back-end development. I was hoping I might be able to get a job as a junior Web developer, but even those require 2+ years of experience and a list of technologies as long as my arm. Internships usually require students to be in their junior or senior year, so that doesn't seem to be an option for me. Recruiters are responding to my resume on various sites, but it's always for someone more experienced. Should I forget about trying to find a junior Web developer position after only one year of computer science classes?"
You are making a huge financial investment in both real dollars and opportunity cost.
Don't worry about developing web sites. Spend that time advancing your core knowledge. Learn as deep and as abstractly as you can. The technologies will change, the knowledge will not.
Any job you take now will likely not impact your career. Find out if there's a professor you can work with in another faculty instead - by going up and down halls knocking on doors if possible. Chances are they have some IT problems that need solving this summer or know someone who does.
..don't panic
First, the world has enough "web designers". Learn how to code the hard stuff, do distributed systems with no UI, do low-level coding and debugging, spend the time to develop real skills. Eventually take the "write an OS" and "write a compiler" classes any decent program offers. More than anything, be writing code as much as you can for any reason. "A writer writes," and a coder codes.
In the meantime, summer internships are good, they'll help more than your degree in landing your first full-time engineering job. It's really hard to find one summer of your freshman year (though it's worth putting in the effort to apply, just to learn that skill too), but summer after sophomore year is a real possibility. But note that recruiting for summer internships starts over winter break for the big companies, and pickings get slim as the year goes on.
Socialism: a lie told by totalitarians and believed by fools.
I got to see Jobs give the commencement address at my friend's graduation from Stanford a while back. But I'm pretty sure that by the time this kid is a senior, Jobs won't be there. He's kind of dead already.
Keep in mind: Freshman year you're going to have the most free time out of any other year. By senior year your workload is going to be double or tripled.
With that in mind: I'd focus on your studies. If you have spare time, focus on getting other classes out of the way so you won't have to take them later. Or take other classes that could develop your degree and help you learn things you didn't know before. Take a network security class, or a graphics class. Something outside your wheelhouse.
If you're already at 18 credits and finding yourself bored: Work on your own outside project, contribute to open source project, etc. Whatever you do, do not commit yourself to a regular job with expected hours.
For reference: I worked while I was getting my degree (had to, I paid my own way) and it delayed my graduation about a year to a year and a half. So I'd only recommend doing it if you need the money.
I wouldn't worry about some list of technologies. I wouldn't worry about n years of experience in some field.
Technologies come and go rapidly.
It would be better to focus on what problems you have solved, and how you used technologies you knew and came up to speed rapidly on technologies you did not know to solve those problems. Come into an interview with working software you can demo and code you have written -- and expect to talk about what you are showing.
Also, bypass recruiters as much as possible. Work connections through friends, family, and school to get an interview. Expect to get turned down more than you get accepted, but eventually something will turn up.
Seems to me you have way more than 2+ years of experience.
While he says he has 10 years of web designing experience with 5-6 years of dabbling in PHP, he also says he really enjoyed his freshman level web development class. I had about 7 years of rudimentary programming experience before college, and all of my programming classes in the first two years were mind-numbingly boring and basic. And I was still not good enough to work as a professional developer. I have never met a self-taught developer that enjoyed their 100-200 level programming classes; they just suffered through them until the real CS classes started.
It sounds like this student is a self-motivating learner, and if that keeps up he will do quite well. But there are probably still huge gaps in knowledge that would make working in the industry very difficult at this point. I would suggest to do everything you can to get internships even in your Fresh/Soph summer, but understand you probably aren't ready to be employed as a software developer yet. I have known people who caught a lucky break writing basic websites for a family friend or something similar, but that was long before there were tools that help even laymen get a SMB website going in no time.
-- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
Or move to India so you can come back on an H-1B
On a serious note, if someone is asking for 2+ years experience for a junior position, they're smoking crack.
Perhaps they really want intermediate people at a junior salary.
Please do not take this guys advice. He has drank the Silicon Valley kool-aid. Try to do side projects if you have time for them, but to think of graduating as "failing" is the stupidest thing I have ever heard.
Should have skipped university and gone straight for a job.
You sound like the kind of person we may be looking to hire soon. I've hired a few people with your level of experience.
> I can put together a secure login-driven Web site using PHP and MySQL.
Error. One of the companies I own is based on a single product, a SECURE login system. I've been studying security for over 20 years and I've been programming longer than that. We came out with our login security system fifteen years ago and we've been doing real R&D on it ever since. We've found a couple of serious errors we made several years ago. That means that with 10 years of professional programming experience, fifteen years of security experience, and five years of security R&D, we didn't have a secure system. I guarantee you're not far, far smarter than us. If you think you've made a secure authentication and authorization system suitable for the demands of the public web, that's only because of how little you must know about the threats you face.
Have you read the 2001 Pennywize whitepaper, or one of my writings about the Pennywize vulnerability? If not, it's a pretty safe bet that you've coded the exact same vulnerability. That issue makes brute force orders of magnitude easier, such that it becomes pretty trivial to overcome any attempt counting that you think you're doing.
You mentioned you had some publicly available code. If you link to it, I'll be glad to point out two or three significant security issues in your code (if it's for use on the public internet, where it will be attacked daily.).
Assuming you're willing to learn about security, to be humbled, you.can send your resume and a link to ray@bettercgi.com .
The other suggestion I have for you is if you do work these next few years, think mainly about what you can learn from working. Don't consider the salary when deciding whether or not to take a position, but rather accept one (or not) based on what you can learn and who you can meet. Working on autonomous cars at Google for FREE would be wiser than working on yet another message board system for yet another local web design shop for $35,000. The "just another job" option gets you $35 K. Working on the autonomous cars gets you the opportunity to learn from the best and brightest in the world.
Okay, real simple:
HR people put things on "job requirements" which are not actually required.
This is an intentional thing, done to try to find "highly confident" people.
Basically, they think they are selecting for confidence and zeal. Mostly they are selecting for dishonesty and "can't follow simple instructions". Anyway, just send the resume in anyway. Don't lie on it or anything, just send it in anyway. When they realize that there is no such thing as an "entry-level" person with "2 years of experience", they'll look at the rest of the pile.
My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
75% of students change their major at least once. You may be one of them.
No, at this point he shouldn't be giving a flying fuck about languages. He should be studying data structures, algorithms, and learning how to break down problems. Languages don't matter, if you know the other stuff you can pick up whatever language you need in under a week.
I still have more fans than freaks. WTF is wrong with you people?
HR only gives a shit about experience and holes and your resume. Not how much you know or can do. They are the gatekeepers who will let you beg for a job or be invisible to any manager.
One thing I observed was in the early 1990s the market was not hot. In the late 90's a cab driver could make $80,000 a year after reading learn c++ in 21 days! In the mid 2000's the market was cold and I remember seeing on Slashdot "DO NOT BE A CODER. INDIANS ARE TAKING THEM" and "ALL I got WAS 33,000 A YEAR? etc". Today it is hot again!
Get in while the market is still warm. Intern, develop some website stuff for small business and friends. Do everything you can as in 4 years we maybe in another recession again if history is any guide.
The great recession ended in 2009 and it is has been 5 years. Every 7 a new one starts, stocks crash, employers stop hiring, efficiency experts make people do more with less and lay off and the cycle repeats. Now you have your fancy piece of paper but with ne experience :-(
Now what?
Do not be that man. Ignore other advice and go work part time. Even quit school if you can pull 70k a year in 5 years. in 4 years time HR will care more about your lack of experience and holes than your piece of paper. True some will filter you out but mostly large boring companies anyway which are not fun to work for.
http://saveie6.com/
Dude, if you're already at college it's too late.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
By the time you actually have two years of experience, you will count as a senior developer.
That said, I'll give you the same advice I give everyone that applies to my company - Learn the Microsoft food chain. Yes, I do Open Source dev on my own time too. I run and like Linux at home. But when I hire someone, I want you to know ASP.NET inside and out. You know PHP? Great... Cute... Next!
IT needs to be a skilled trade with trade schools and not years of class room with little hands on work.
Computer science == building web sites.
2007-2009 was not "a Great Recession", it was a culling of businesses that had absolutely no right what so ever to exist. Businesses that deserved to exist survived pretty easily. Many that didn't deserve to survive did as well.
That's an oversimplification. A disproportional amount of large companies survived - often on old money, acquired back when they were modern and not dinosaurs. Unfortunately, they also bought up a lot of smaller players to close them down and reduce competition. Companies that would have survived on their own, but could not survive being part of a big corporation.
Other viable companies died because investors got cold feet and pulled out with whatever profits they could, instead of seeing things through. Sometimes selling off companies to other investors, and raising the debt to a level that turned viable companies into time bombs.
A largely unregulated market does not lead to long term viable companies except in fictional eternal growth scenarios. How investors get their ROI changes in a recession - the time frames shrink. Whether it's detrimental to the economy as a whole or the company invested in does not matter - in a bearish market, a bird in the hand is worth two in the bush.
There's no pure theory CS curriculum I know of that includes specialized things that IT people have to know just to get started, such as: What a /27 is, and what Netmask/IP to configure the Windows machine with when I tell you I have assigned the VLAN a /28, and you need to give that computer the last IP address in 10.0.0.48/28, with .49 as default gw. What RAID10 is -- more importantly, how to set one up, how DNS works.... what file to edit and what changes to make to create a reverse DNS entry for X.Y.Z.W; the list goes on as much as you like.
Are you trying to say that it is important to know a lot of trivia, buzzwords, and jargon, to be an IT person?
I started programming at the age of 8.
,, , , ,
;-)
10 PRINT "1337", ,
20 GOTO 10
That was basically it for the next 8 years
what about the pure theory CS people?
The pure theory CS people may be up for coding, but without other experience, they don't have the skills or knowledge necessary for system or network technician, admin, or engineering roles in IT, for sure; entry level helpdesk, perhaps, not unlike the IT skill level I would expect of an ITT/Devry graduate.
There's no pure theory CS curriculum I know of that includes specialized things that IT people have to know just to get started, such as: What a /27 is, and what Netmask/IP to configure the Windows machine with when I tell you I have assigned the VLAN a /28, and you need to give that computer the last IP address in 10.0.0.48/28, with .49 as default gw. What RAID10 is -- more importantly, how to set one up, how DNS works.... what file to edit and what changes to make to create a reverse DNS entry for X.Y.Z.W; the list goes on as much as you like.
There is no such "pure theory CS curriculum" to begin with. Every curriculum I've seen provides some type of IT-related courses at the junior and senior level. And the top-notch CS schools (think MIT or Stanford) provide hands-on curriculum in say, Robotics or Machine Learning ... which obviously might not fall into the typical realm of IT, but CS was never about IT to begin with.
what about the pure theory CS people?
That's like asking if a mechanical engineer can do plumbing.
Short answer - I'm sure he could, though it would take him a while to become an expert at plumbing. The mechanical engineer could, in theory, design a plumbing system.
In the same way, system administrators and network engineers and other IT personnel are experts at the particular system that they work with. Those systems were designed by "theory CS people"...