Practical Experience As a Beginning Programmer? 328
LuckyLefty01 writes "I'm 21, going to college, and working part time doing odd jobs like math tutoring. In the past nine months or so, I've discovered and taken to programming (so far mostly C/C++/Obj-C). I am now looking seriously at something in this area as an eventual full time job. Since I don't have much scheduled this coming summer, it would be great to try to get a job of some sort at a tech-related company in order to get some practical experience in the field. Even if I don't have the background to get a job involving actual programming, I think that the knowledge of how such a company works would be valuable. Fortunately, I live in the SF Bay Area, so there should be plenty of companies around. I'm flexible about what I'm going to be doing, and very willing to learn just about anything anybody cares to teach me. If there's some (or even quite a bit of) boring grunt work involved, I can do that too. What type of job would benefit an aspiring but inexperienced programmer the most? What methods might I use to find such a job?"
how to get a job 101 (Score:2, Funny)
2) ????
3) ????
4) Profit.
I've got #3 figured out for you (Score:5, Funny)
2) ????
3) Get a Job
4) Profit.
I suspect step 3 might be recursive, though.
Re:how to get a job 101 (Score:5, Insightful)
Re: (Score:3, Interesting)
Re:how to get a job 101 (Score:5, Insightful)
I know I'll get modded down for posting an offtopic reply, but my message is very, very important to all /. users (except the 1% who are female): guys, stop this "girls hate me because I'm a geek" nonsense!
The two great loves of my life have been CompScis, and they are two of the greatest guys I ever met. They've helped me learn to program, take things apart with screwdrivers, read some great books, and have a much more interesting life. Geeks are great. The only problem comes when you take being a geek as an excuse not to wash, to dress like an asshat, and to forget your social skills.
To the original poster - don't listen to anyone who tells you a computer-related job will kill your love life. Expand your knowledge, be passionate about what you do, and anyone who (metaphorically) mods you down for it isn't worth knowing. Also remember to shower, and get some nice shirts :)
Re: (Score:3, Interesting)
Here's some tips that will actually be useful. Men should dress for the kind of women they wish to a
Re:how to get a job 101 (Score:5, Insightful)
A woman's POV isn't worth much on what attracts women? Yeah, I can see that I made a big mistake there...
Who said a geek guy has to go out with a geek girl? My point is exactly not that. It's that "normal" girls won't find you unattractive because you're a geek, but they will find you unattractive if you don't wash and can't hold a conversation!
And if you really think I have a "large pool" of geek guys? You have to be kidding! You're all too convinced that women hate you to offer us more than a suspicious sneer ;)
Re: (Score:3, Interesting)
Paradoxically, it isn't. There's a difference between what attracts a person and what that person believes to attract them. Psychology is like that. Oh, and it works for men too: I don't even pretend to understand why one woman is more attractive to me than the other, aside from the obvious aspects.
Re: (Score:3, Interesting)
You make six figures, inherited a fortune, and drive around in a sports car?
Seriously though, this is way off topic for the original posting about some kid trying to get job hits on Slashdot, but I have to admit: I'll play along just to ask the same rhetorical questions. I've pretty much given up finding _that_ one girl. She's taken by now. A 10+ year search led me nowhere but a few realizations. I'm a pretty picky person, I refuse to settle, and I'd rather live alone than
Re: (Score:3, Funny)
Preeeee-cisely.
You wanna meet for coffee sometime? ;)
Re:how to get a job 101 (Score:5, Funny)
I have feelings.
Re:how to get a job 101 (Score:5, Funny)
Oh. You mean you're one of those small, weedy guys? Fine - don't wanna have coffee with you in that case.
**sulks**
Re:how to get a job 101 (Score:5, Funny)
Re: (Score:3, Funny)
Re: (Score:3, Insightful)
While you are no doubt correct that a geek profession is not an absolute barrier to a lovelife for a straight guy, there are several things to consider
1)If you become a coder, you will most likely not be meeting
Re: (Score:3, Insightful)
I take your points, but remember that most people are not in a band, don't fly jet fighters, and aren't independently wealthy. Most people work in stores, as road sweepers, janitors, office drones, whatever. And most of them can't (or shouldn't!) talk about the details of their work to girls - "So, today I sold a C667Ex6 model sofa with turned wood legs, and a G665ff54 model chest of drawers. Can I buy you a drink?". Compare that with "today I worked on a system that stops your plane from falling from the s
Re: (Score:3, Insightful)
I think you're very wrong. Look at dating sites - a lot of women's profiles are very honest that they're not looking for fat or ugly guys. Many of my female friends and I will openly scope out the good looking guys (and, yes, their trouser-bulges) in a bar even when we're around male friends. Yes, most of us, like most men, are keen to be with someone who we find physically attractive. But that's not necessarily going to be the standard handsome muscular guy. I've met guys who I thought were only average-a
Re: (Score:3, Interesting)
Hmmm... Well, I usually give guys my email address (I hate telephones), and if they don't offer theirs in return it usually means it isn't happening! But they may email - it's their decision. If you can find a good reason to ask for someone's email, that can be good - people feel less threatened giving out their email address rather than their phone number.
How to not let someone fall asleep while you're talking to them? Ask them questions - about themselves and their interests. And when they answer, fol
GSOC (Score:5, Informative)
Re:GSOC (Score:4, Insightful)
Re: (Score:2)
How about.. (Score:2, Redundant)
Re: (Score:2)
Bugzilla! (Score:5, Interesting)
Re: (Score:2, Interesting)
Re: (Score:3, Informative)
Re:Bugzilla! (Score:4, Insightful)
Re:Bugzilla! (Score:5, Informative)
The last 10 years of my resume has nothing BUT Open Source/Linux work, much of that working for big, non-OSS companies.
I just got a new job at a Fortune 500 financial firm in lower Manhattan spending my day building and debugging FLOSS applications for Linux and Solaris. Their criteria for hiring me was specifically because of my long-standing ties to the OSS community and my work on FLOSS for the last 14 years.
These companies do exist, and they DO value your OSS contributions, if you state them clearly and succinctly on your cv/resume.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
OpenSource is a hip new thing/buzzword and especially if its working on something that everyone in IT has heard about (Mozilla, Linux).
I would try and highlight the functional part of the software work (debugging, number of users, worked on OS kernel, code review/approval, etc) and not so much on the philosophica
Re:Bugzilla! (Score:5, Insightful)
An excellent sign of a company you don't want to work for. If an interviewer ever said something to that effect, I would thank them for their time and leave.
Re: (Score:3, Interesting)
Re: (Score:2)
Quite. All of my jobs since leaving the British nuclear industry back in 2000 (which was very anti-Free pro-Microsoft and closedness in general) have been because of my familiarity with and enthusiasm for Free and Open Source Software.
Most interesting projects are not done on Microsoft platforms any more. They're done on a free unix like Linux, Solaris or *BSD.
Microsoft Windows (and .NET) is a legacy desktop platform for "office" applications.
Re: (Score:2)
I and the handful of companies I've worked for have valued open source project experience highly. It shows that the person takes initiatives. It shows that they is enthusiastic about technology, and enjoy it. It shows that they have experience w
Re:Bugzilla! (Score:5, Insightful)
I disagree completely (Score:2)
truck (Score:5, Insightful)
You might want to pick a less worthy job for comparison....also, hard to *outsource* a truck mechanic job, yes?
Re: (Score:2)
On an unrelated note, the number of ".. but wait, you are a girl
-Ellie
Re: (Score:2)
Oh, a running joke!! Ha! Ha! It's so funny to see people who want to change their career to make better lives for themselves! That's fucking hilarious! OMFGHAHA, look at this guy's resume!! He thinks his years of experience doing physical labor qualifies him for a junior position in my company! What a luser!!@!
I'm sorry if that was not your intent, but in those first couple of sentences, you came across as pretty c
Re:Bugzilla! (Score:4, Insightful)
Re: (Score:2)
Re:When one is reviewing CVs.... (Score:4, Insightful)
Re:Bugzilla! (Score:5, Insightful)
In any case, I wouldn't look down on mechanics. Most of "them" are probably smarter than most of "us", if you really stop to think about it.
Re: That's great, but is it practical? (Score:5, Insightful)
You have to learn version control systems, the community, what constitutes "easy", you have to learn the scale and meaning of each piece of the project, you have to learn communication and moreso, you have to know enough to actually fix things.
If you're just looking to learn, you've got plenty there. But using OSS projects to learn means a very high overhead and initial learning cost before you learn about coding or code design at all.
Re: (Score:2)
Volunteer (Score:2, Informative)
I do not know how many CSC PHD's that just read the linux kernel, and are amoung the smartest people I have met out there.
Re: (Score:3, Funny)
How do I do this? I can't seem to find the "print linux kernel" button?
Re: (Score:2)
I know you worded that as a joke (which was funny)... but.... you can get the source out of the CVS archive. Also, there was a book series that had linux source code (and another with Apache, and a third with TCP/IP), which had interesting annotations and comments. Or you can just go to Amazon and order the source code on CD. [amazon.com]
Re: (Score:2)
Hate to break it to you (Score:4, Interesting)
Do you have any monotonous tasks that you do on your computer that you think could be automated? Well then automate them! Even if it isn't very good, it will still familiarize you with the various languages and how computer programs work to solve various problems.
Re: (Score:2)
That said, simply apply to various places. Likely many still have openings for various reasons including back luck with previous candidates or hiring un-freezes.
If there is a job fair, job listing or any other event with corporate people at it go there. Likewise ask any professors you know well if they have heard of an opening somewhere. In other words instead of applying to HR you may be
Learn everything! Also, move. (Score:3, Insightful)
However, I'm also living in New Jersey, the state of a million suburbs. New York and Philadelphia are just far enough over the border to cause massive congestion and high property values (and taxes, and cost of living). My advice: while San Francisco may be rife with software companies and others who need development expertise, you might do much better looking outside the money-guzzling city.
I feel a little bit like I just gave you old-man advice.
Experience doesnt have to be "Professional" (Score:3, Interesting)
The experience doesn't have to be in a company, most likely its going to be VERY difficult to get a job when you don't even really know the language yet. Be sure to get experience with the more difficult programming concepts in C++ such as templates, singletons, and auto-registration (if your compiler supports it).
Re: (Score:2)
C/C++/Obj-C (Score:4, Insightful)
Finding a job.... (Score:4, Insightful)
A temporary job that'll benefit you the most ... (Score:5, Interesting)
... will probably not involve C++ development.
There are a few reasons for that. The minor ones are that most C++ / ObjC projects are big enough that it's difficult to bring an experience programmer in to work on them for just a few weeks, let alone someone with no large project experience. Not impossible, by any means, but not something that a larger company is likely to do outside of a more formal (and longer term) sponsorship arrangement.
The big reasons are that the absolute _last_ thing you need either on your resume, or to enhance your skill set is a brief job coding. The basic coding is something that you should be picking up the basics of in college, rounding out a little with some personal coding (helping out with the countless open source projects out there, for instance) and won't really bring to fruition until you're doing it full time.
The skills you're less likely to pick up there, but which you can pick up in a shorter temporary project are things like QA, marketing, sales, system administration, maybe even customer support. So look at picking up a grunt work job in the field that's not directly touching code. QA and testing (for a real software company, not EA or anything in that field) is a gig you might well be able to pick up, and which would teach you more about good software design and good software project management in a painful 8 weeks than you'd learn in a year writing software. If you can do that in an early-stage startup, and see that business process too, at least from the sidelines, even better.
Heck, if you could wangle it, working as a gopher for one of the Sand Hill Rd VC firms would be one of the best introductions to a career in the software field, I think.
Re:A temporary job that'll benefit you the most .. (Score:5, Informative)
I see your point, but I sort of think if he wants to be a developer, he should do development. If anything offer to program at a very low rate as others have suggested. I've seen many people that want to code get stuck in QA for years. If he does take a QA job, he should definitely try to get access to the source code and try to write up much more detailed bugs than the other QA engineers and always be telling people he's interested in becoming a developer. This is definitely a delicate subject because the QA managers will probably not be happy with that. Also, I don't see this path with marketing/sales since it's really a different world and does not interact as much with development as QA or sys amdin. I have seen customer support folks move over to development on occasion too. But again, all of these take a lot of time and hard work, when if you have development skills, I'd suggest just being a developer right off the bat in any way possible (e.g. internship)
Re: (Score:3, Informative)
You need to be able to understand what your QA engineers are saying when they give you feedback. If you've never done it, its a lot harder to understand what they mean when they don't know the innards of how the software works.
A developer that understands Marketing/Sales can also understand how to help those areas without comprimising the application
Re:A temporary job that'll benefit you the most .. (Score:3, Interesting)
In hiring somebody with a CS degree but not lot of professional experience, there are three things I look for, in increasing order of importance:
Hmmm (Score:5, Insightful)
I'll tell you, those things may help you learn your language or platform better but it will not help you be a better engineer. Unfortunately only time in the trenches does that. Being a good engineer fit for a job at a software company, you need to know how to work on a team, set and meet deadlines, write documentation, etc... all the stuff that you don't tend to get doing the informal stuff that everyone is likely to be talking about here.
An internship or entry level position doing continuation engineering or a junior/associate engineer is going to get you more useful experience than all that other stuff, assuming you actually do know how to write software.
I got mine (Score:2)
Testing (Score:4, Insightful)
Testing has the added advantage of being a place where its low paid and turnover is high so its a good place to get started in IT.
Re: (Score:2)
Re: (Score:2)
+100.
Did testing for couple of years. Really learned how to test what I code ^_^
But I did functional testing: dissecting source code into tiny pieces and then writing a program which would trigger nearly every line of code. But that's quite rare job I'd say. Generally most people get scared of working as testers - and there are many reasons to it: low pay, low profile, some amount of routine.
Good luck is also needed: testing code of some moron might add a considerable number of gray hairs. Testing
Re: (Score:2)
Help Desk... (Score:2)
Co-op/Internship (Score:2, Interesting)
In addition to getting a feel for the real world of programming (and maybe making some money over the summe
Practical work involves APIs and patterns (Score:3, Interesting)
Before getting involved in an Open Source project ask yourself - and this is a difficult thing to ask - what it is going to be useful for and what kind of business might use it. Is that the kind of business you want to be in? If you don't know, do some research. Remember a valuable fact: contribution to, say, the Linux kernel is easy for anybody anywhere in the world, whereas writing code that extracts and condenses human knowledge and then turns it into a system is far easier where the relevant human beings live. If you live in the Bay Area, it should not be too hard to work out where the business opportunities lie, where automation might cut costs or have other benefits, and what Open Source projects might be relevant. Then choose one, learn it, and send your resume round to people who might be interested.
What I am describing is a lot of hard work, by the way. But you already knew that, if you wanted to succeed in programming, you were going to have to work hard.
You've got the right attitude (Score:3, Informative)
Bad firms have bad bosses, good firms have good bosses, etc. It's hard when you're inexperienced, but aim for the good firms: being a genius at a bad firm is just damaging to your health.
1. Inventory your skills: are you a programming god or just good? do you want to work long hours, or are just willing to? do you want to build relationships or just write code? does meeting clients excite you or seem a distraction? Answer honestly, and you've got a good cover letter.
2. Hit personal relationships. No hard sell needed, just point out you're looking for a summer job and ask the person to keep you in mind. Mention the points in 1, so he'll feel comfortable in making a recommendation (last thing I want is a person telling me he wants to write code, I refer him to a peer, and the applicant spends all summer trying to meet clients, etc.)
3. Do the usual sending resume stuff. It doesn't hurt and you might find a match.
4. Write code, build on-line relationships w/ other tech people, contribute to open source projects, etc. Sure, it's not a job, but it's better than nothing. I've hired a lot of people based on their OSS participation or academic work.
Check with the CS department for Internships (Score:2)
I started with a company as a summer intern back in 1997, and it turned into a career as a software engineer. I got the internship through my college. Besides making it easy to get a job, an internship is the best way to learn all of the skills you need to prepare you for the "real world", since colleges don't seem to be too good at that, at least in the programming arena. Internships (in computer science) tend to pay pretty well, you're not expected to know much, coming in, and the sky's the limit for w
Data Structures and Algorithms? (Score:2)
Networking - old school style. (Score:2)
Co-Op / Internship (Score:2)
Here's a good related question... (Score:2)
How does someone with lots of systems experience but little development experience get started? It seems like coding Hello World takes a huge amount of work now i
Re: (Score:2)
Why?
Cocoa is written in Objective-C. What is Cocoa I hear you ask?
Wiki will put it better than I, but put simply Cocoa is Apple's API framework for the Mac OS X environment.
There are many good books out there to get started in Cocoa programming,
Forget open source projects... (Score:3, Insightful)
Personally I think an actual job is a better route, because it'll put you in contact with more people who use the software, rather than implementing some feature request someone made possibly on another continent. Plus, you actually get PAID (which is important to anyone in College without rich parents). Actual job experience looks a LOT better to most employers than working on a random, often unheard of open-source project. Not to say open source stuff isn't good experience, I'm just not certain how many employers value it.
As to how, this may be obvious to you, but many Colleges and Universities have programs to connect students with companies. Those can be quite beneficial, and you usually get paid pretty decently compared to most student jobs. Have you not looked at the various job boards, talked to your instructors, etc?
I'd also recommend just looking internal to your University. Many departments have come to use the student programmers as a cheap workforce. Scientists often need someone to do some programming for them, though they may want you to program in something quite outdated, like FORTRAN. Departments have programming needs as well. I think one summer I had three different programming gigs.
Re: (Score:2)
Re: (Score:2)
I remember being a College student, and paying for the majority of it myself. Money was important.
Re: (Score:2)
!OSS && !ObjC (Score:2)
jobs.apple.com (Score:2)
Good attitude (Score:3, Insightful)
The other thing I will suggest is applying to many, many companies to start with. HR departments at companies are black holes in general, and it may take quite a few applications before you get anywhere.
I'm just coming off a longish job search myself, so I know how frustrating the process can be. Keep your chin up, and good luck!
Possibly volunteer work (Score:3, Insightful)
There are loads of internships for QA interns (Score:2)
Learn Politics not Technology (Score:2)
However, a tech job will teach you the politics of IT and software development. You'll learn about how to balance competing interests, how to accept the
If you want to get paid, (Score:2)
LKML (Score:2)
Linux Kernel Mail List.
Even if you do not plan to use or program for Linux, the mail list has bunch of gurus often saying good thing. Try to code some driver or simple file system - anything what would look interesting to you. Try to post patches on mail list - comments often provided invaluable insight into how OS and HW function.
If you going be a system developer - Linux (or BSD) is good start point where you can participate easily. If you going to be application developer, then experience working
A small start-up, preferably in R&D (Score:3, Informative)
I suggest looking for an opportunity in a small start-up. Perhaps you don't want to associate with the proverbial two nerds in a garage, but you can learn much more in a small firm, that perhaps has a dozen people dividing all the work between them. You'll learn to do much more than programming, and working in a small firm is more fun. And besides, a small cash-strapped start-up is more likely to hire a college kid to do some coding, than a large established firm.
There may also be good opportunities in companies that aren't in the IT sector, but in research & development, for example a biotech company. Usually these companies don't have very strong IT departments (and again, you will learn more in a small team), and they will hire people on short term contracts to complete specific projects. Even a medium-sized biotech might not employ a single skilled C++ programmer on a permanent basis (the density of C/C++ programmers in this environment is around 0.3%), so they might be willing to hire you.
Or, if it interests you, look for small firms that develop hardware, such as instrumentation, robotics, or consumer electronics; or small engineering outfits that produce custom development and automation. There isn't that much C/C++ in a typical IT job these days, rather a lot of the work is now in web development, database applications, Java and .NET. But people who interact with hardware, especially if it's time-critical, still have a need for the level of detail and control that C can offer.
And probably it's best to work through an agency or consultancy firm. I don't know US practice, but on this side of the pond it IT directors who need and extra person on the team won't place adverts or look through job applications. Instead, they will send out a request to specialized agency or consultancy firm.
Parent is insightful (Score:2)
Agencies, however, will probably not want you because they will want you to be buzzword compliant to the skills list they have sold the client is needed for the job. As I suggest above, do the research, send in your CV
My Recommendation for Beginning Programmers (Score:2)
Structure and Interpretation of Computer Programs [mit.edu]
The best first job for an aspiring programmer is.. (Score:2, Insightful)
If I were looking to bring
Good question (Score:2)
duh - be an intern (Score:5, Insightful)
2. You're in the bay area
You must simply become an intern. There are plenty of resources at every college for finding out about this and applying for an internship. I've been a SW developer for almost 10 years, and it really is the second best way to get a job as a developer. (the best way is to know someone)
Even though we're sliding into an economic downturn. Interns are so cheap (most get paid in the bay area, but not much) that companies look to them to shore up their need for employees in the rough times. Once you're done being an intern though, you will find it very hard to get a job unless you had some fantastic internships.
There is little demand for junior developers right now(if this was 1998-2000 you would have no problem), and it is going to get worse before it gets better.
Not sure why this had to be an Ask Slashdot.
Already Ten Years Too Late? (Score:2, Flamebait)
Don't do it (Score:3, Interesting)
(I should know)
In the current market, it's not even a financially sound choice: you should have noticed by now the comments about how hard it is to find work as a Junior Developer - take it as a warning.
If you do manage to punch through the no-job-unless-ur-senior barrier that the service outsourcing trend has raised in IT, then life isn't too bad, though nowadays, unless you're a very specialized freelancer, software developers are paid barely above less specialized jobs.
Given the frequency of posts here on Slashdot about redundancies, outsourced jobs and in general overworking and death marches (don't get me started on that), I'm amazed nobody else has come out and said it before me: "Nowadays, working in IT sucks
Career (Score:3, Insightful)
I think the first thing you should do is decide if you're interested in programming as a career and not just as a "full time job". As a wise person once said, "Love what you do and you'll never work a day in your life."
Some Real Advice (Score:3, Insightful)
First off, check out monstertrak.com; it's specifically for college students, both upcoming graduates looking for permanent jobs and those further away from graduation looking for internships. Now, some comments, as a 1-person operation whose business is growing out of control and who actually has a job listed there, and other places:
Not only does it show a capacity for understanding things, I suspect it shows an understanding of, and capacity for, hard work--believe me, that's something that smart employers understand and appreciate.
This, unfortunately, is quite true. But speaking from my own personal experience, there are always employes who start looking quite late--don't give up.
So, so, so true. So many schools have computer curricula that are junk and only prepare you to have your job sent offshore in a couple of years. Of course most employers look for the buzzwords of the day, but there are ones who look for signs of high intelligence and real passion--and for those people there are jobs out there that won't be offshored. Also take hard advanced math classes, particularly discrete mathematics, and get good grades in them. Then lie during your interview and tell me how easy they were ;-)
Damn straight. Most people who claim to know C++ only know a really dumbed-down baby subset. Read Alexandrescu [amazon.com], then read it again, until you understand it all. Then branch out to other books on template metaprogramming. A candidate who could explain the primary differences between Boost smart pointers and Loki smart pointers, and the rationale for the decisions, is one who's going to impress me.
In the U.S., employers do list and actively search for the new, soon-to-graduate talent. Over here, your advice applies more to those who are already out in the job market.
Re: (Score:3, Informative)