Things I Wish I’d Been Told: Tips For Students with a Bachelors in Computer Science
ir.bbn.com
ir.bbn.com
> Finally, don’t forget to be well rounded.
When I started my first real software development job at a fairly large company, I was surprised to see that practically everyone worked on their own life outside of work, with a few exceptions (like me, at the time). They were part-time geeks in that they spent time away from the computer - when they were not at work. That was the biggest difference for me - going from college to the work force.
Some had families - which were their focus - every year around Halloween time it was vividly evident how important their children were ("John has two kids!.. I had no idea") and their jobs were (to support their families).
Some invested time in hobbies - whether it involved fixing up motorcycles, renovating their house, and my favorite (volunteering to maintain old railroad steam engines and run them on occasional weekends). The weirdest hobby - was a guy who did rubbings - as in rubbings of gravestones - when he traveled.
The first years in software development can be intense because you (usually) can hyper-focus on it. Once you get some experience, you'll start to realize it's not about the technology - there are common patterns. And once you have a lot of experience, you might be on the transition path out of wanting to code with the latest out there - e.g. settle down, start a family.
> That point is worth repeating another way: an extra dollar in salary is not really a dollar, it is 60 cents.
In the crazy dot-com days, I invested a mere thousand and made $25k+ and lost it all on margin calls. And learned to realize how hard it is to actually make $25,000 while paying living expenses. Tracking is the first step to budgeting - and it can be painful.
1. If you aren't doing an internship or working a job that's related to your field (like doing systems administration / development for the college or a local company), you are behind, even if you are on the Dean's List. These days, employers seem to be able to find enough people who have done something parallel to their education, so if you don't you will look just as inexperienced as if you had no degree at all. The bar got raised and it's possible no one has told you.
2. I am probably biased towards the job market in my area, but hardly anyone wants entry level, and as I said above, no one wants "ground level" (just a degree) unless you are gunning for a helpdesk / PC tech position. I figure this is because the hiring pool of experienced IT workers is large enough and their quality versus fresh recruits better enough that they feel they don't need to look for junior staff that they plan on training.
3. As others have said, you will only really use a small set of the skills you learned in school. Work will remind you more of your job / internship / side projects you had during college. This is probably why employers scoff at degree-only graduates.
4. All of this advice is of course just my personal experience, and many employers probably have different beliefs.
1. Time until graduation (we prefer candidates who will be graduating soon so that the good ones can return as full-time employees)
2. Software development experience that goes beyond class projects (including other real jobs, previous internships, and work on open-source projects)
3. Familiarity with a variety of programming languages (some schools teach most classes using Java plus a little bit of JavaScript, but we like to see a greater breadth of experience)
4. Relevance of major (Software Engineering is probably the closest fit, followed by Computer Science, Computer Engineering, Information Systems, Applied Mathematics, etc.)
5. School reputation
6. Master's versus Bachelor's degree status
7. GPA and academic honors
The other rule I'd add to your list is:
5. The first job you get is vital for the future direction of your career. You REALLY need to be working with talented people who are better than you and know what they're doing or your progress will suffer.
I supposed in my innocence that there were the overtly-sexy apps and the unsexy but still challenging apps* . I haven't had the opportunity to work for a real tech company yet, but my impression is that programming in IT is essentially a different career compared to programming in a software company.
*It's not just a matter of nasty-little-problems. It's also a question of cultural values. More on this at http://enfranchisedmind.com/blog/2009/02/22/programming-does....
The main problem I've found in defense contracting is that it isn't flexible, and (in my opinion) too many design decisions are made at too high a level. Details that don't really matter (what implementation of X we're going to use in development, for example) are decided (and made effectively immutable) before it makes sense to do so by people not actually doing the coding. To be fair, I've only been around for a month (and this is just my experience with one contract), so take it with a pinch of salt.
Corporate IT, in my opinion, is pretty boring. There were two of us supporting ~500 users across the world (offices in Chicago, NY, LA, London, etc), and I still had a lot of down time. We had some simple tools that took care of 90% of our work (re-imaging, backups, data migration, etc), and the rest were a lot of reasonably easy one-off jobs (simple tool to parse excel reports, load monitioring webapps, etc) or product evaluation (Evaluate these n products, talk to these 2n vendors (sorry, 'solution providers'), and write a report on your recommendation). There were one or two reasonably interesting projects (a 'visual voicemail' feature hacked onto our avaya phone system and some genetic algorithms for scheduling a conference), but they were the exception. Far more time on the phone talking to end users and vendors than I would like.
It's a good but incomplete article, I would add : - Working is hard, it's a very difficult commitment. You'll have to keep motivated with little help and you'll be alone in difficult situations. - You'll be paid less than you think you do in the first years, but it will gradually increase - The caricatures you see on tv are mostly true in the corporate world - A lot of stuff you'll learn in school is bullshit, it'll be either obsolete or inadequate at work
A typical credit card rewards program pays 1.5 or 2%. Hardly a good deal. I'd switch to cash instead.
I'm very disciplined about paying off my credit card every month, which means I have a fixed total budget that I refuse to go over. A part of that I dump into cash in my pocket for beer and sushi and whatever doesn't accept credit cards, and the rest I set aside to pay off the month's credit card bill.
The effect of this is that I have to keep a running ballpark tally of how much I have left in the credit card pile, and since I've conditioned myself to be deathly afraid of going over, I always estimate conservatively, and I inevitably wind up with a surplus that I dump straight into savings and never touch again.
Why a credit card instead of a check card? Because the credit card company pays me that 2% for free, because if it gets stolen it's the credit card's money at risk and not mine, because if an emergency happens I have the flexibility to break my rules, because it establishes a credit score that I can parlay into lower interest rates when I want to buy a car or a house later.
I think the advice to not have a credit card is pretty terrible, actually. There are so many benefits, and as long as you have a little self-control, pretty much no downside.
I would change that to "a lot of self-control".
As someone who is filing for bankruptcy (due to investment property loss related to the sub-prime debacle, not credit cards) and has had all his credit cards canceled (even the ones paid on time), I can tell you how much more difficult it is to live off cash alone. There have been so many times when the flexibility of a credit card would have saved me from several $35 overdraft fees. Such repeated experiences quickly teaches you to change your habits and be more frugal.
If you don't feel disciplined enough with your credit cards now, try not using them at all for a few months. Take them out of your wallet and stick them in a box at home so you can't use them when you're out.
I disagree. This is great advice for the majority of people. Not everyone, but the majority.
Do credit cards offer benefits? Yes--convenience, expense tracking, protection against theft, etc.
Are these benefits free? No. People spend a lot more using credit cards than cash. Maybe not you, but most Americans. I don't care enough about this to look up the stats, but I do have a PHD psychologist friend on the payroll of one of the major credit companies and his job is to contrive ways to make people spend more on their cards.
Think about it like this: your cash is dumb--it justs sits there in your pocket. Your credit card is smart, however. A whole cadre of smart people--who are incentived to get you to spend more and pay late--are tracking how you spend money and are cooking up ways to get you to spend more and pay fees.
I know the empirical numbers would help my case more, maybe I'll dig them up and write a blog post about it.
I would argue that if you're seeking and open to advice on whether or how to use a credit card, you're probably already differentiated from the free-wheeling credit-abusing mob, and that if that's the case, if you know you can be responsible with it, it's actually a really great idea to have one.
The FIRST thing everyone needs to know about stock options is how many there are, and then look at possible exit strategies for the company, how much more funding will be needed, and what the valuation is when your options are granted and what they were for the different funding rounds. In essence, it's more important to know your ownership percentage than an absolute number of options.
He said it was interesting but never acted on it :(
- Get a decent paying job doing developement or IT. At the very least, something that gives you health ins.
- Do consulting/contract gigs on the side. Choose projects that will let you expand your skills and learn new technologies.
- Live below your means and save money for 12 months.
- Month 13: build and launch your startup.
- Continue your job for at least 6 more months, but stop doing the side gigs.
- Month 18: Evaluate your startup. If it's making money, quit your job.
- If it's not making money, build and launch another startup.
- Repeat as needed.
In the past ten years I've been able to sock away nearly nothing in retirement due to the amount of time I've spent unemployed, and I'm currently 30. While I'm as affected by the market issues as anybody else, one side effect of stock prices dropping back to 1997 levels is that all the interest I thought I was missing out on, it turns out I wasn't after all.
Man, I wish I were twenty and had a good job now, buying my IRAs at the bottom of the market like this.
Russell 3000 Index: http://www.google.com/finance?q=IWV http://en.wikipedia.org/wiki/Russell_Indexes
These are highly correlated over the short run, but technically different investments. So, you can get cute with the taxman by writing off a loss on one and buying into the other every down year.
Caveat -- Crises like the current one can wipe out even the best of portfolios.
If you look at government bonds (a.k.a. TBills), they'll tell you exactly how much interest a truly risk free investment is worth (in yearly interest). Anything higher then that is risky, by definition.
On top of that, you have to factor in inflation.
In other words, it's good to save money, but managing saved money is hard. Be ready for that.
That used to be true, but it isn't strictly true any more. The Credit Default Swaps for US Treasuries are priced to imply that you need to subtract around 1/10 of a percent (100 basis points) from the yield to get the real risk free rate. See http://www.fxstreet.com/fundamental/analysis-reports/sunrise...
https://personal.vanguard.com/us/funds/snapshot?FundId=0040&...
If you want go that route, invest in MSFT, which has averaged something like 50% over the past 22 years.
When you come out of school and land right in the middle class, as most professional developers do, it's pretty easy to take care of your basic needs. What's more difficult is balancing your (often frivolous) wants and needs in the present, with your needs in the future (retirement), with the basic needs of others. I don't see many people talking about how to do this in a responsible and morally satisfying way.
Just remember: once you can afford a down payment you recoup a huge amount of your own income by investing it in equity instead of throwing it away.
"Part of your job is figuring out what your boss is good at and what your boss is bad at, and asking your boss for help with things that your boss is good at, and politely giving your boss help with the things your boss is bad at."
The average starting salary now must be at least $10,000 more.
I also have an anecdotal reference point. A friend of mine who worked at the same company I do in the dot com years made over 80k in an entry level position. I make significantly less than 80k right now, albeit in a different field.
$40,000 seems to be standard here (North Carolina).
But I've never been, mostly due to being dependent on others for rides.
In other words, there is a risk/reward function that has the likelihood of the company being successful as a variable. For all intents and purposes, you'll basically be guessing this value (high uncertainty != high risk).
The bit in there about employers being happy to see their share price rise to just $10? It's pointing out that your interests and the founders interests aren't aligned. Founders have so many shares that a $5MM sale can be a winning lottery ticket. It might mean just $5,000 for you.
Teach yourself about money, finances, and the absolute basics of contract law. There's a reason why lawyers, accountants, and the like make very good livings.