I just graduated, now what?



  • Hello

    I recently graduated with a CS degree from college and have started Looking For a Job. There are a ton of experience programmers and IT folks here, your advice and expertise would be immensely appreciated.

    I have decent programming experience and a CCNA. I am an amateur programmer because I havent explored the major frameworks out there. For example, buzzwords like ApacheStruts, EJBs, J2EE, Ajax, etc dont mean anything to me :(

    In college we mainly focused on the classical aspects of programming (ie, finding logN algorithm for a task, etc), and I almost no "real world" application knowledge.

    At the same time, I am one of those tech-savvy people who visits all major websites, blogs, etc and am completely overwhelmed with the stuff thats "out there". I have hundreds of bookmarks and growing...

    I've been heavily motivated by writers like Paul Graham, Scott Adams and Guy Kawasaki. I have some interesting startup ideas of my own, but have no idea how to technically implementing them.
    So, I have a bunch of questions for you all

    1) As I mentioned, I have some interesting start-up ideas but little idea on "where to begin".
    How do I know which framework to use for the project? How do I find out if there are a bunch of APIs out there somewhere that will make my life easier? I've always firmly believed in not re-inventing the wheel..

    2) In relation to question 1, would you say it is a good idea to dwell deep into either of the 2 large frameworks (Java and .NET) in hopes that I'll find something in there that will be useful for me (eventho I dont really know what I am looking for). These frameworks themselves are so massive to begin with..

    3) There is very little programming development where I live. Should I settle for a low-paying job to gain practical experience (and money) while working on my own personal project side-by-side. OR.. should I totally sit at home and focus 100% on my personal project (which may not end up being lucrative afterall)

    4) More than anything, I am just intimidated with the sheer amount of buzzwords out there. I simply dont know how it all fits together, and how I can go about achieving my own project. 

    5) And finally, any particular suggestions for a starter like me? Do you know any particular APIs, frameworks, or technologies that are good for a beginner to dwell into

    Thanks a lot! 



  • My father never went to college, so it was really important that I go. After I graduated, I called him long distance and asked, "Now what?" He said, "Get a job." When I turned twenty-five, I called him and asked, "Now what?" He said, "I don't know. Get married."



  • [quote user="GizmoC"]

    3) There is very little programming development where I live. Should I settle for a low-paying job to gain practical experience (and money) while working on my own personal project side-by-side. OR.. should I totally sit at home and focus 100% on my personal project (which may not end up being lucrative afterall)

    4) More than anything, I am just intimidated with the sheer amount of buzzwords out there. I simply dont know how it all fits together, and how I can go about achieving my own project. 

    [/quote]

    These are the only two of your questions that I can answer, so here goes.  First step, get a job in your area.  Even if it pays chicken feed, you'll get experience and soon will be able to answer the other questions yourself.  Also, unless you're independently wealthy or want to live with mom and dad until you're 40, you really should have an income to support yourself and your project.  Also, the crap job will give you a valuable item on your resume and will launch you up into better-paying jobs.  Sadly, though, expect to have to relocate when you're ready to take on the best-paying jobs.  Our industry has suffered in the last few years - or rather we IN the industry have suffered.  We're now faced with seeing many good jobs being off-shored, and being forced to relocate to the ones we can find.  It totally SUCKS.

    My second comment, is mostly just a comment.  I'm an "old-school" programmer, still have a lucrative and challenging career using the old 3rd gen languages.  Yes, surprisingly they CAN still be challenging, if you get into the right industry.  Anyway, most people here would accuse me of letting my skills stagnate, and they're not very wrong.  I found that the technology quickly outpaced what I was able to keep up with.  The companies that I worked for, were only interested in skills that they wanted me to apply to my work, and refused to train me in anything else.  I have a (fairly common) problem of not remembering stuff that I learn if I can't apply it, so spending money on self-training myself on outside technologies would have been a waste of money.  So here I am - obsoleted!  (Although it wasn't because I was afraid to learn new stuff.)  I find it interesting that someone right out of college also feels overwhelmed by the amount of technology, solutions, and buzzwords.  At least I can empathize! 



  • I hear what you're saying, and I've experienced losing jobs during the boom/bust.  Also, having taken a higher paying but lower skilled position (desktop support) during the "boom," I was not well positioned when the investment bank I worked for closed up shop and everyone was laid off.  During the recession there were no desktop support jobs, I think for several reasons:  a)  remote technology better, so help desks could do things that used to require a desktop visit.  b)  offshoring and c) the general state of the economy. 

    I have since rebuilt my skill set (concentrating in Windows Installer) and been moderately successful, but it hasn't been easy.  I'm still not earning what I was as a desktop support contractor in 2000.   As long as your skills are in demand you're not obsoleted! 

    At this point it seems there has been a slowdown in offshoring, either because of negative customer reactions, narrowing of the wage gap between India and the US, or both. 

    I am not a developer but from my little bit of playing around, the Visual Studio .NET looks awesome, and the Express edition is free. 

     



  • Short version:

    Play with a lot of languages, see what you like. You don't buy shoes without trying them on. You don't know if you really like them until you walk around a lot. Don't blindly pick something.

    Get a job. Build your application in your free time. The experience you get working with other people, meeting a lot of personalities, and building contacts in various areas could end up being very helpful when you do your own thing. Everyone I've employed, everyone I've partnered with, has been as a result of some job or another... I just used a freelance graphic designer for some work; top-notch guy, met him by asking an old co-worker for the best designer he knew.

    [quote user="GizmoC"]

    1) As I mentioned, I have some interesting start-up ideas but little idea on "where to begin".
    How do I know which framework to use for the project? How do I find out if there are a bunch of APIs out there somewhere that will make my life easier? I've always firmly believed in not re-inventing the wheel..
    [/quote]

    Successful ideas are rarely about the technology. Sure, some things let you go faster. Some things enable a different kind of experience more easily... but, your idea is about filling a need, or a perceived need. Crystalize what you want to do. Solidify who will use your product. Then start to form an idea of how you want to implement it. Honestly, it doesn't matter if you pick up Perl, Ruby, Java, C#, or C. Each language is going to have a plethora of libraries and frameworks that you'll encounter as you need them.

    [quote user="GizmoC"]

    2) In relation to question 1, would you say it is a good idea to dwell deep into either of the 2 large frameworks (Java and .NET) in hopes that I'll find something in there that will be useful for me (eventho I dont really know what I am looking for). These frameworks themselves are so massive to begin with..

    [/quote]

    Don't learn the frameworks... identify your problem and then look to see what frameworks exist to help you solve that problem. Necessity is a great teacher. So, find your need and then find the frameworks to fill that need.

    For example, I needed to build a web site. So, I learned ASP.NET. I needed to save stuff to a database. So, I learned ADO.NET. Then, I decided that I hated how I had to write my data access so I found a persistance library to do it for me (NHibernate). I've never needed to draw an image so I haven't even touched any of the drawing api.

    As far as looking at the "two major frameworks" or "the cool but niche stuff", well, that depends on what you're in it for. If you're after a job with a medium-large corporation, your goal is to get past the HR screeners. They don't care if you're sharp as a tack, invented your own programming language, and are proficient in Perl... at least, they don't care about that if the job description says "must have 5 years Java experience". On the other hand, if you find you love Ruby, then just concentrate on that. You'll find an enlightened company that will pay you because you're a good developer or a company that really, really loves Ruby.

    [quote user="GizmoC"]

    3) There is very little programming development where I live. Should I settle for a low-paying job to gain practical experience (and money) while working on my own personal project side-by-side. OR.. should I totally sit at home and focus 100% on my personal project (which may not end up being lucrative afterall)

    [/quote]

    Is your idea going to make money on day one? If so, why not polish the pitch enough that you can get some VC money?

    Personally, and I'm not the biggest risk-taker around, I'd get a job and then work on my idea on the side.

    You could also contribute to some open source projects. They can help you gain experience, give you some resume talking points, and expose you to different problems and solutions.

    [quote user="GizmoC"]

    4) More than anything, I am just intimidated with the sheer amount of buzzwords out there. I simply dont know how it all fits together, and how I can go about achieving my own project. 

    [/quote]

    Ignore the buzzwords. Forget about things like Struts, Spring, Hibernate, Jakarta, AJAX. Concentrate on what your problem is and then look for things that will help you fix that problem. Then, don't be afraid to revisit things you've done in the past and ask yourself if what you used was a valid solution, could it be better, would you do it differently if you could.

    [quote user="GizmoC"]

    5) And finally, any particular suggestions for a starter like me? Do you know any particular APIs, frameworks, or technologies that are good for a beginner to dwell into

    [/quote]

    Pick a language with a syntax you like. Then move from there. I love C#. I've done some extensive Java work, but I just like C#. I hate writing code, though. So, I use libraries like NHibernate, log4net, and dojo.

    First, try on a bunch of languages. Then, pick some favorites. Once you learn more, go back to some of those languages you discarded because they felt too hard or cumbersome and see if you still hate them. You might love Ruby and Ruby on Rails, but you won't know if you never try it.



  • Instead of starting my own topic, I figured I would just add on to this.

    I am in the same predicament.  My question is not so much in what should I concentrate on, but more on how one in my position even gets his foot in the door somewhere.  I have no problem taking low-level work with mediocre pay so long as it is in the software development field.  However, almost all jobs I see require experience in the range of 3+ years in the field proper, and not in academia.  So, how does one find a job where college education in Computer Science is an appropriate requisite? 



  • [quote user="SteveYoungblood"]

    I am in the same predicament.  My question is not so much in what should I concentrate on, but more on how one in my position even gets his foot in the door somewhere.  I have no problem taking low-level work with mediocre pay so long as it is in the software development field.  However, almost all jobs I see require experience in the range of 3+ years in the field proper, and not in academia.  So, how does one find a job where college education in Computer Science is an appropriate requisite? 

    [/quote]

    Well, ideally, you would have had the chance to secure an internship while you were in college or landed a student prorogrammer position at the college while you were there. Failing that, there are still plenty of opportunities. First, I'd look to your network. Do you know anyone that works in your field or has connections with companies? Approach that person, or those people, and ask them if they would be willing to help you out. Frankly, every single job and job offer I've ever had was the result of a friend, ex co-worker or contact.

    Moving on from there, look for any jobs where they're advertising for just programmers or junior programmers. Write a compelling resume and apply away for anything that interests you and that you'd feel you would be capable of handling. The odds are in your favor that you'll eventually land a company that's willing to reconsider their needs and bring on a less experienced person (read, cheaper and more malleable) who is able to learn. My wife was able to break into the DBA field as a junior DBA because they recognized that she could fit in with the team and would learn quickly (oh, and her friend is the one that got her in for interviews).

    There are also plenty of ways to build experience without being in the field. Find an open source project you like and start contributing. Look around for local charities that can use help with classes or web sites or whatever and just pitch in. I currently help teach high school students how to program through the BDPA (Black Data Processors Association). If I needed it, that experience would be another bullet point on my resume, plus I've met a lot of IT professionals through the organization that I could call on if I needed help getting a job (plus, it's just good for the soul to help out with cheritable causes).

    Joining an organization is another option. A lot of organizations offer student membership rates and some may extend that to at least your first year out of college. Joining a group like AITP (Association of Information Technology Professionals) might be an option. Also look for any special interest groups / user groups that you might like to join. Many of those are free, they put you in touch with working professionals, and they keep you current. For example there might be a C#, Java, or BizTalk user group in your area.

    Keep sharp, stay willing, and don't settle and you'll find yourself on the path to landing a gig where you can grow and get paid well.



  • You (both) came in at a bad time. It's very difficult to get a job these days.

    I hope that you are single, as what you need to do will be all the easier. My advice: take the best job you can find. Relocate if you have to. Work on your "ideas" in your spare time.

    Regarding a job, I highly suggest you make use of your college's career center -- assuming they have one. Additionally, you should cultivate any career fairs oriented toward software engineering that you can find. Travel to another state for one if you have to. Also, sometimes it helps to go to a recruiter. Consider it.

    Finally, regarding skills/buzzaords/etc., I would suggest that you read voraciously, especially trade magazines. Keep up with the buzz, at least so that you know the different platforms and how they work, even if you don't necessarily know the details. You'll find that *programming* is the same in pretty much every language. Minor syntactic differences, but the same basic principles. Learn the APIs as you go.



  • Serious advice (and the same I give to any CS graduates): get out of the IT field. Really.

    Your degree is equally valuable for any other non-specialised jobs that you might get into, and it's pretty worthless for any specialised jobs in the IT field (anybody who is recruiting for a technical role will assume that you know nothing of value, because most fresh graduates don't - your degree was focussed on preparing you for doing a PhD in CS and becoming a researcher, not stuff that happens outside universities).

    Commercial software development is a life of unpaid overtime, irrational demands that change without notice, and cleaning up messes created by unqualified coworkers. Product support is a special form of hell reserved for people who drop live kittens in boiling water. Systems administration is not hiring this decade - there are enough experienced unix admins working in the field already (and it's not expanding much), while windows systems "don't need" skilled administrators (any job adverts you see for windows admin roles will turn out to be desktop support roles - see product support, it's the same thing). This will continue until existing administrators get old enough to start retiring in large numbers - since most of them were new hires in the 80s and 90s, this will not be for many years yet.

    Working in any IT support role, you will be seen by management not as an asset to the business (like the sales team), but as an unavoidable expense (like accounting and legal), which is to be minimised as much as possible.

    If you're not already entrenched in the industry, and aren't particularly committed to it (and from your post, you really aren't), it is a really bad idea to try and get into it right now. This is a low point in the history of IT systems. The way to be successful in the field, today, is to start ten years ago. If you start today, in ten years you'll probably still be right where you started. Sad but true.

    Since you appear to be technically inclined, look for roles in other fields where you can apply this. Most businesses operate in a technical field of some kind, and have a lot of non-specialised roles that need people who can deal effectively with the specialists. If you have the stomach for it, consider management and sales. Consider other things that you're interested in, and research companies who work in those fields - most people would rather hire somebody who cares about their product than somebody who is good at their job (you have to realise that the people making the hiring decisions are usually not all that smart).

    You will have a much better life as a bank manager than you ever will as a code monkey.



  • All I'll add to asuffield's reply is that there are some good management courses you can take.  Look for "continuing education" courses at universities.  Most managers get into management without ever taking these courses.  You've probably already seen the result.  The two most important parts of management are communications management and risk management; you should at least learn about those.



  • Well, the advice is appreciated.  However, assuming that you are right, this is still something I'm probably going to have to learn the hard way.  I may be young and naive, and I'm sure that in less than five years, I might be wishing I had done something else, but right now, I feel like there might be something in software development if I can get over this "I have no experience" hump.

    Everyone who has contributed advice -- thank you.  I guess to further elaborate, I'm just wondering what are the good things to be doing in the mean time while on the job hunt.  Are certifications worth it, or is it just a waste of money that most companies don't really look at?  Is it just a matter of persistence until somebody decides to take a chance on the young rookie?  Do I need to lie on my resume, make up job experience, and then hope they don't check into it for whatever reason (note:  I don't really want to go this route).  Or should I just resign myself to my fate that nobody in IT wants to gamble with someone with no experience, and start looking for other work now instead of later.

    In regards to relocation, I'm not really opposed to it except for a couple of concerns.  Although I'm not in poverty and thus desperately needing a job right this second, I don't feel like I have the money saved up to relocate on my own, and most companies for these kinds of entry-level jobs I would be eying most likely aren't going to be willing to assist too much in relocation.  I'm probably not going to be landing any mission-critical positions where they're willing to go the distance to secure my services.  Likewise, I don't think I have the money to travel all over the country to interview for jobs unless I'm reasonably sure that I have more than just a chance of getting it, and that it will be worth my while.
     



  • Do you have another interest or hobby that you can use to advantage in finding a job?

    For instance, are you really good at graphic design?  I'm not, and that's why my web designs suck so much.  (Fortunately my company does not value aesthetics at all, and the users have to take what they get.)  Someone with good design skills can do well in a situation where the web site makes or breaks the company.

    Combining your interests doesn't always work.  I'm a musician and for a short time I worked at a company writing music software.  It sounds like a dream job but the management made it a horrible place to work.  (Once I heard them gloating over a contract they had just signed:  "We really screwed them!"  Making a great product wasn't important to them; screwing people was.)  I've heard that game development is the absolute worst.

    But that's only because game-writer-wannabees and music-software-wannabees are a dime a dozen.

    You may be able to find a job where your I.T. skills are secondary but will give you an advantage over other candidates.  For instance someone may need someone who can set up new computers for everyone in addition to whatever they actually hire you for.

    As for certifications, I am a CDP and a CCP, certified by the ICCP.  Not one person on these fora can tell you what those initials stand for without looking them up.  The hope was that the CDP and CCP would be like the CPA for Certified Public Accountants, but that hasn't happened.

     



  • [quote user="SteveYoungblood"]

    Are certifications worth it, or is it just a waste of money that most companies don't really look at?

    [/quote]

    If you want to get into megacorps, government contracts, or consulting, they're a requirement. For anything else, they're a waste of money. Also, a certification only gets you into an interview, it will never get you past that.

     

    Is it just a matter of persistence until somebody decides to take a chance on the young rookie?

    Nobody will do that unless they have some other reason for it. There are hundreds of other not-quite-so-rookies they could hire instead, for the same money. If you're already known to the people doing the hiring for some reason, that might be enough. If you just apply to random companies, nobody will be interested. They need some kind of hook.

     

    Do I need to lie on my resume, make up job experience, and then hope they don't check into it for whatever reason (note:  I don't really want to go this route).

    That's one way to get a job, with a view to rapidly moving into the management/sales track (being able to successfully lie your way into a job marks you as somebody that the sales department really really wants on the front line, selling their junk to ignorant people). You could get a development job that way (because hiring practices for most development jobs are not much more precise than picking a candidate at random), but you won't keep it for long.



  • [quote user="GizmoC"]

    1) As I mentioned, I have some interesting start-up ideas but little idea on "where to begin".
    How do I know which framework to use for the project? How do I find out if there are a bunch of APIs out there somewhere that will make my life easier? I've always firmly believed in not re-inventing the wheel..

    2) In relation to question 1, would you say it is a good idea to dwell deep into either of the 2 large frameworks (Java and .NET) in hopes that I'll find something in there that will be useful for me (eventho I dont really know what I am looking for). These frameworks themselves are so massive to begin with..

    3) There is very little programming development where I live. Should I settle for a low-paying job to gain practical experience (and money) while working on my own personal project side-by-side. OR.. should I totally sit at home and focus 100% on my personal project (which may not end up being lucrative afterall)

    4) More than anything, I am just intimidated with the sheer amount of buzzwords out there. I simply dont know how it all fits together, and how I can go about achieving my own project. 

    5) And finally, any particular suggestions for a starter like me? Do you know any particular APIs, frameworks, or technologies that are good for a beginner to dwell into

    [/quote]

     

    In general you should have some idea of the answers by now. In your spare time, you should have already been working on your projects in school, and have an idea of what the major "frameworks" offer.

     

    1) How do you know what framework to use? In general it doesn't really matter, one is just as powerful as another. Although one framework might have more libraries in the area of need than another. In specific it will depend on what you want to build. If I want to build a thin client I might use .net, while if I want a thick client I would probably go with C++. But you really need to do some research on various languages and frameworks to understand what they offer. Design a simple program (take one of your class projects, and make it bigger) then implement it in a variety of frameworks. Find one you like.

    2) In a word Yes. Although you might want to spend a little time understanding the technologies first. Java is a programming language, while .Net refers to a framework. The .Net framework can be used with a variety of languages, but usually is used with C#.

     3) Not really sure how to answer that question. At some point you have to get cash to pay for food and lodging.

    4) Don't be intimidated by buzzwords. MOST of them are made up by marketers. As for tech acronyms you'll pick them up with experience.

    5) Any suggestions to dwell into? C# and Java and other web programming skills seem to be where the demand is. For now stick with the more mainstream languaes and frameworks. Knowledge of other languages and frameworks will become easier.  Go to hotjobs.com or monster and see what expereince most of the jobs are looking for, work on those skills.

     My only real suggestion, is if you think you have some ideas for possible starters. Try it. Get enough of a job to pay for food and a place to live and concentrate on your starters. If things aren't going somewhere after a year or so, you can still move on and try to get a "good" job. Do it now while you have the youth and exurberence to put in 16 hour days (8 hours for you, 8 hours for your job) with no wife and kids to support. Later in life it will be harder to try to create a startup.

    Despite what others are saying here there are a TON of jobs in programming, everywhere. You'll have to relocate for some of the more glamourous ones, but you can find programming jobs in just about any decent sized city. And yeah, you may have to deal with some crap jobs and some bad code, but you will have to deal with crap jobs in any field. Do you what you love.



  • As much as I hate to do this: 

    <dad>

    Your degree won't get you a job. Your resume won't get you a job. Your CCNA won't get you a job.

    People will get you a job.

    Yes, you have to have skills and/or an education. Yes, you have to have a resume. It helps immensely to be clean, well-mannered, and reasonably well-spoken.

    But what you need most is to be connected with people. Get some business cards printed up with your name and contact info, get some "businessy" clothes, work up an "elevator speech" about what you want to do and what you're looking for. Go to technical job fairs, look in your local paper for professional gatherings, call everyone you know who might know someone who might know someone. Don't be pushy and obnoxious, and don't act entitled. Just be straightforward. And be creative - I went to a networking meeting of a local VC organization once because I was interested in the speaker and ended up with a dozen excellent contacts. Talk to people, listen to people, if there's any connection, give them a card and ask for one of theirs. And if you hear of something that can help someone else, pass it along.

    As for navigating the plethora of languages, frameworks, tools, and technologies - just pick something and try it out. Reading blogs and collecting bookmarks won't give you the experience you're looking for; you need to roll up your sleeves and get your hands dirty.

    </dad>



  • [quote user="chrismcb"]

    Despite what others are saying here there are a TON of jobs in programming, everywhere. You'll have to relocate for some of the more glamourous ones, but you can find programming jobs in just about any decent sized city.

    [/quote]

    Oh, there are jobs everywhere (although not for people with no experience at all). What's missing is careers. Doing a lousy job today won't get you a good job next year, it'll just get you another lousy one. 



  • You probably wont like my suggestion, but consider getting a completely unrelated job where you think you might be able to "show off" your skills to improve your experience.  Three and a half years ago, I started as a market researcher (yes, one of those annoying folks who calls you up at whatever time is least convenient for you) doing cold calling.  It paid the bills.  After six months there, they noticed I had a few skills they were sorely lacking in their data processing unit.  I was promoted, and began doing data processing virtually full time (at $13 per hour, straight out of high school.  Complaints?  Heck no!).  I noticed a few opportunities to "streamline" and "increase efficiency" in some of our repeat work by developing small applications in Delphi (three years later they're still using them, no recompiles since January 2005) which allowed me to drop "Software Developer" on my resume.  One year after that I saw a web developer opening at their parent company.  I applied and got the job - paying $35K/yr, but it's a start.  A year and a half after that, I left there and now work in ICT for a central government department - paying $45K/yr (with benefits).

     You've just gotta be able to see opportunities in unlikely places.



  • [quote user="Kyanar"]

    You probably wont like my suggestion, but consider getting a completely unrelated job where you think you might be able to "show off" your skills to improve your experience.  Three and a half years ago, I started as a market researcher (yes, one of those annoying folks who calls you up at whatever time is least convenient for you) doing cold calling.  It paid the bills.  After six months there, they noticed I had a few skills they were sorely lacking in their data processing unit.  I was promoted, and began doing data processing virtually full time (at $13 per hour, straight out of high school.  Complaints?  Heck no!).  I noticed a few opportunities to "streamline" and "increase efficiency" in some of our repeat work by developing small applications in Delphi (three years later they're still using them, no recompiles since January 2005) which allowed me to drop "Software Developer" on my resume.  One year after that I saw a web developer opening at their parent company.  I applied and got the job - paying $35K/yr, but it's a start.  A year and a half after that, I left there and now work in ICT for a central government department - paying $45K/yr (with benefits).

     You've just gotta be able to see opportunities in unlikely places.

    [/quote]

    Well, any advice is appreciated.  And I'm certainly not going to suggest that it's 'bad', but it sounds like this is just something where you just kind of stumbled into the field, whereas I am actively trying to get into it.  While I don't want my skills to stagnate sitting around my parents house waiting for the "dream job" to come along, I also don't want to just settle on something that might give me the break I need sometime down the road.  I realize that a degree alone isn't really enough in this market to easily get me a nice job, but I'd like to not be overly pessimistic and hope that with some patience, my four years in college won't prove to have been a complete waste of time.

    Since my last post, I have gotten a few call backs.  Given the bad time of the year, I'd like to think that it's a good sign.  While I know that phone interviews are only the first step, and not any guarantee whatsoever, I do think progress is being made since I'm no longer just getting the standard "we've reviewed your resume and have no position for you at this time" form replies to those longshot jobs I took a stab at.  In fact, I'm finally getting a few calls from people stating that they're actually looking for people in entry level jobs, alleviating my fears a little bit that it's absolutely hopeless to think that a degree and no experience will get me in the door somewhere.

    Like I said, I'm not going to sit around forever, but I also don't want to take the first job that promises a paycheck.  I've seen too many college graduates not do anything related to their degree out of college, only to lose sight of their goals as soon as they start making enough money to barely live on.  As soon as they start making "just enough," they don't even try to find 'actual' jobs.  I want to feel as though I gave it a fair chance before I throw in the towel and reach desperation levels.
     



  • One thing I have begun to notice is the increase in entry level jobs. A few years back, no one was hiring entry level programmers. Now you just type that into Google, Dice.com or any jobs search site and you will get tons of jobs. I think the market is swinging back where it should be. The job market is there.

    I wouldn't listen to all the pessimists who say to switch fields. Most of them are giving open honest advice based on their years of hard work. However, they stuck with it through all the bad because it is what they love to do. If they can make it through, so can you. Also, some, maybe even just a very small minority, try to discourage people from being in the IT field, because they don't like the competition. My thought is that they want people to drop out of the IT field, causing demand to go up. I can certainly understand, as the competition is fierce and it helps weed out the salary seekers of the 90's who didn't really care about the field, but were just looking for easy money. (I don't think anyone on here falls into that category.)

    Your degree isn't meaningless, you just can't start at the middle as you might have once been able to. You will need to start at the bottom like everyone else. The difference a degree makes is later in life. Yeah, you have to struggle along just like everyone else, but after a few years, management will notice you and your degree. A degree won't get you a nice little office from the start. You will be lucky to get a cubicle in the back corner, where it is nice and quiet. I suggest taking the first entry level job that comes along in an area that you like, regardless of pay. Get the experience and in two years or so either management will notice you and promote you, or you will have the skills and degree to get a much better job.



  • [quote user="Jerim"]

    Most of them are giving open honest advice based on their years of hard work. However, they stuck with it through all the bad because it is what they love to do. If they can make it through, so can you.

    [/quote]

    Only if you love to do it that much. And if you did that, you'd have been doing it for the past ten years, you wouldn't need to be asking questions about what things you should learn, and we wouldn't be having this discussion.



  • I am not sure I understand your response. I think you are saying that if the poster actually loved doing what he is doing, then he wouldn't be asking where to start. If that is what you are saying, then I don't follow. You can love something and still be lost and need a little guidance.



  • 1) As I mentioned, I have some interesting start-up ideas but little idea on "where to begin".
    How do I know which framework to use for the project? How do I find out if there are a bunch of APIs out there somewhere that will make my life easier? I've always firmly believed in not re-inventing the wheel..

    Not reinventing the wheel is a really good attitude; I did it too much.  There are such APIs, but often they're for languages you don't know.  It's worth it to learn a language and then an API as well.  Also, there are some technologies that don't count as APIs that are equally important to learn -- XML and SQL are good examples.

    It depends on the idea, of course.  If you have an idea that you can't do by yourself in a month or two, save that idea for later, when you really know what you're doing.  When approaching a new language or API, do simple stuff -- not necessarily simple to complete, but simple to prototype.  Chances are, the prototype is all you'll need to learn the technology, and then you can start your real project with all the underlying knowledge you're going to need.

    A point of advice about personal projects -- keep at them, as if they were a musical instrument.  Even when you're busy with other stuff, do at least a few hours of work on the project in a week, lest you forget how pumped up you are about it.

    2) In relation to question 1, would you say it is a good idea to dwell deep into either of the 2 large frameworks (Java and .NET) in hopes that I'll find something in there that will be useful for me (eventho I dont really know what I am looking for). These frameworks themselves are so massive to begin with..

    It's worth it for the job potential.  When you can add to your resumé a big list of APIs in a popular language, then employers who want you to write that language know you know the environment.  They also know that you can learn new APIs without much trouble (by then, you'll be very good at it).

    It's also worth learning an API in its original language, if it's the kind of API to get ported between languages.  The OpenGL API makes more sense in Python if you learned it in C.  It's like learning Italian so you can understand operas better.

    When you're implementing a prototype idea to learn an API or a framework or a standard, play with it, too.  If you think the API might have more stuff that you don't know yet, do some research online and add onto it until you think you understand all you want to.

    3) There is very little programming development where I live. Should I settle for a low-paying job to gain practical experience (and money) while working on my own personal project side-by-side. OR.. should I totally sit at home and focus 100% on my personal project (which may not end up being lucrative afterall)

    Get out of there and get a job right away.  Get a job that you will be happy with even if your side projects don't pan out.  Think of it this way -- your personal projects are your dream job, but you need a backup.  Let the backup earn you money and keep you happy, and do projects whenever you feel like it.  Don't be a starving artist.  Besides, the salary you get right out of college is your baseline salary for the rest of your life.  I didn't care much about money, but in case I ever do (family, kids etc) I'll be in good shape.  You could have a retirement account set up right now, dude.

    4) More than anything, I am just intimidated with the sheer amount of buzzwords out there. I simply dont know how it all fits together, and how I can go about achieving my own project.

    [b]Wikipedia[/b], my friend.  Start with any buzzword and read its article.  If you lack the domain knowledge to understand the article, follow a link and come back later.  Tabbed browsing is great for this -- push an article on the stack and read it again after a little bit. :)  This is the best way to understand buzzwords because the articles are about exactly what each word means!  You may have to go several articles deep before you really get it, but by the time you're done you'll have been through enough knowledge to cover several university lectures.  Yesterday I spent about two hours understanding "Business Intelligence" and everything behind it using exactly this method.

    5) And finally, any particular suggestions for a starter like me? Do you know any particular APIs, frameworks, or technologies that are good for a beginner to dwell into

    If you're interested in graphics, OpenGL is a lot of fun and it's challenging.  You have to like (or put up with) matrix math to really really get it, but I found that it's worth it.  It's fun to start and then gets deeper and deeper...  Start with the "NeHe" tutorials.  If you don't care about platform, Direct3D (and the rest of DirectX) is trickier at first but is equally powerful.  Reading the DirectX SDK docs is a great way to get used to learning APIs in the first place -- you learn to make sense of a big mess.

    Windows Forms (Part of .NET) is a fine windowing system.  Very handy to know your way around, because that knowledge eliminates a good 3/4 of all your Windows programming hurdles.  It also will get you very familiar with Visual Studio.

    If you want to do stuff on the web, MySQL and PHP are great together.  SQL is just good to know, if you don't know it yet.


  • the pessimism in this tread amazes me. The average starting pay for CS majors out of my college is 55K and everyone that I know and talk to had a job offer before graduating. I got an offer at the first company I applied for. Don't believe the lies that the field is terrible.



  • I agree with much of what asuffield has written however, if you are determined to enter this industry..

    Go to a professional CV writer and then register with a specialist recruitment agency. Your CV needs to stand out from those of all of the other IT graduates. If your college has a careers service then try it; many offer courses on interview technique. Your degree and a good CV will only get you the interview, you have to do the rest, Can you get a letter of recommendation from one of your tutors? Do any of your tutors have industry contacts?

    Visit your library or buy the books and teach yourself the buzzwords. Download the free stuff like MySQL and Java and play, you will soon discover how it all fits together. You only need to learn enough to be able to blag your way through the interview with confidence, and don't be afraid to say you don't know. They will not expect the Earth from a new graduate. I have employed people purely on their enthusiasm at interview.

    Best of luck. 

     

     



  • Is it really that hard to find a job as a software developer in the US this time? Here in Austria, there seems to be a lack of skilled programmers. During the last year, I've received job offers regulary... just like in the late 90s.

    Regarding GizmoC's questions, it's perfectly normal not to know all those frameworks in the Java world. Just visist apache.org and count the number of "web application frameworks" they are offering. How could any programmer know them all? Those buzzwords are, in the end, buzzwords. Especially in the Java world, frameworks come and go. Frameworks do not always make your life easier, since they constrain the way you build an application. That's an important difference to a library, which simply adds functionality.

    Regarding libraries, just keep in mind that anything that seems to be a "basic" functionality, e.g. encryption or networking, most likely already exists in one of the standard libraries. Things that are a bit more complex, but often required, like writing an Excel file, most likely exist in additional libraries, e.g. from the Apache Jakarta project. If something is very likely to exists in a library, it pays to search for this library/API instead of trying to do it yourself.

    Sitting at home and focusing 100% on a personal project... well, if you can afford it, do it for a year or so. Maybe you wont be successfull, but at least you tried. In a few years, when you are married and have a lot of responsibilities, you simply wont be able to do that anymore. Anyway, use the web to look for example code, ask others for help. If you do it all on your own, without any feedback, chances are that you make the same mistakes that a lot of people have made before. Anyway, keep in mind that an excellent product is nothing if you cannot sell it. If you succeed on the technical side, it can still be difficult to create a business from it. Selling stuff costs a lot of money for a start.

    As a final recommendation, try to have fun with your work. It's perfectly possible to have a job that doesn't suck.

     



  • @SteveYoungblood said:

    Well, any advice is appreciated.  And I'm certainly not going to suggest that it's 'bad', but it sounds like this is just something where you just kind of stumbled into the field, whereas I am actively trying to get into it.  While I don't want my skills to stagnate sitting around my parents house waiting for the "dream job" to come along, I also don't want to just settle on something that might give me the break I need sometime down the road.  I realize that a degree alone isn't really enough in this market to easily get me a nice job, but I'd like to not be overly pessimistic and hope that with some patience, my four years in college won't prove to have been a complete waste of time.

    Since my last post, I have gotten a few call backs.  Given the bad time of the year, I'd like to think that it's a good sign.  While I know that phone interviews are only the first step, and not any guarantee whatsoever, I do think progress is being made since I'm no longer just getting the standard "we've reviewed your resume and have no position for you at this time" form replies to those longshot jobs I took a stab at.  In fact, I'm finally getting a few calls from people stating that they're actually looking for people in entry level jobs, alleviating my fears a little bit that it's absolutely hopeless to think that a degree and no experience will get me in the door somewhere.

    Like I said, I'm not going to sit around forever, but I also don't want to take the first job that promises a paycheck.  I've seen too many college graduates not do anything related to their degree out of college, only to lose sight of their goals as soon as they start making enough money to barely live on.  As soon as they start making "just enough," they don't even try to find 'actual' jobs.  I want to feel as though I gave it a fair chance before I throw in the towel and reach desperation levels.
     

    You miss my point.  My point is that although IT is the field I want to work in, without the experience I could not get a job to get that experience (catch 22).  The only way I could think of to get that experience is to sign on with a company doing something essentially horribly menial but with advancement opportunities.  You cannot start at the top.  It's a gamble really.  And I suppose I should have mentioned that when I got the opportunity to go from Software Development and Data Processing to Web Development at the parent company, I was really taking a pay CUT to do this - because it's what I wanted.  From $16/hour to $35K/year, remembering that it meant that I would not get paid for overtime.  That's, unfortunately, something you have to live with.

    It's certainly not desperation, it's a means to an end.  Like I said, it's one option, and depending on where you are you may  not need to do that.  Where I am, you do need to, as our job market was too flooded when I originally entered it.  Now, of course, there's a vast shortage of qualified, able, skilled workers.  All I'm really trying to say is that you should "think outside the box"



  • @Kyanar said:

    (...)when I got the opportunity to go from Software Development and Data Processing to Web Development at the parent company, I was really taking a pay CUT to do this - because it's what I wanted.  From $16/hour to $35K/year, remembering that it meant that I would not get paid for overtime.  That's, unfortunately, something you have to live with.

    Unless you work more than 2187 hours per year, it's not a pay cut.
     



  • @ammoQ said:

    @Kyanar said:

    (...)when I got the opportunity to go from Software Development and Data Processing to Web Development at the parent company, I was really taking a pay CUT to do this - because it's what I wanted.  From $16/hour to $35K/year, remembering that it meant that I would not get paid for overtime.  That's, unfortunately, something you have to live with.

    Unless you work more than 2187 hours per year, it's not a pay cut.

    I'm going to be honest here, I did a LOT of overtime in my original job.  My salary would have been effectively $30K base in that job, but I did a lot of extra time (mostly developing and maintaining the applications they still use).  When I say there was an effective pay cut, I was also taking into account that in the new job I also had to put in a lot of overtime, which (unlike my old job) was not paid for.



  • @Kyanar said:

    @ammoQ said:
    @Kyanar said:

    (...)when I got the opportunity to go from Software Development and Data Processing to Web Development at the parent company, I was really taking a pay CUT to do this - because it's what I wanted.  From $16/hour to $35K/year, remembering that it meant that I would not get paid for overtime.  That's, unfortunately, something you have to live with.

    Unless you work more than 2187 hours per year, it's not a pay cut.

    I'm going to be honest here, I did a LOT of overtime in my original job.  My salary would have been effectively $30K base in that job, but I did a lot of extra time (mostly developing and maintaining the applications they still use).  When I say there was an effective pay cut, I was also taking into account that in the new job I also had to put in a lot of overtime, which (unlike my old job) was not paid for.

    Well then... get a life ;-) SCNR 

     



  • good one.



  • The comments and advice in this thread have been most helpful. Since I last made my post, I've started learning Python (its pretty cool, and I've always wanted to learn it).


    1) I face a strange dilemma. I have a few job prospects (thru my Uni's recruiting office) - but most of these companies are local businesses. In other words, eventho the starting salary is decent... the work is pretty mundane, and.. easy. For example, I have a job offer which essentially involves running simple SQL queries for the marketing dept. The pay is surprisingly good for such a simple job .. but I see very little scope for personal growth. I dont know what to do. Should I take the job and hope that eventually they will see my potential and promote me? Even if they do promote me in the future, I would end up as one of those managerial "IT" types... sure, my pay would be great and I would get to boss around the technically inept... but none of it would be Computer Science.
    Infact, none of the job openings I've received seem to have anything to do with Computer Science - yes, its Computer based, but not Computer Science. Its the kind of job anyone could train himself with a 3 month diploma.
    On the other hand, none of the "pure IT" companies have given me any callbacks yet. Its a bit depressing since my GPA is pretty good (3.6) and my CV isnt too shabby... but still no responses.
     

    2) Ok, this question is a bit off-topic. As I mentioned, I am learning Python. Eventho I understand the language, and its native constructs (like lists, dicts, tuples, etc)... I am finding it hard to get out of the Java mindset. I've started solving some of the problems here
    using Python but I find myself simply repeating "Java logic" and not using Python's native "power". Fortunately, I discovered some cool tricks myself that broke me out of the "Java box" thinking... but most of these tricks I just stumble across myself
    So.. I guess this is an open question.. does anyone have any formal way of embracing Python, especially as a Java programmer. Even a few links would help.
     



  • @GizmoC said:


    1) I face a strange dilemma. I have a few job prospects (thru my Uni's recruiting office) - but most of these companies are local businesses. In other words, eventho the starting salary is decent... the work is pretty mundane, and.. easy. For example, I have a job offer which essentially involves running simple SQL queries for the marketing dept. The pay is surprisingly good for such a simple job .. but I see very little scope for personal growth. I dont know what to do. Should I take the job and hope that eventually they will see my potential and promote me? Even if they do promote me in the future, I would end up as one of those managerial "IT" types... sure, my pay would be great and I would get to boss around the technically inept... but none of it would be Computer Science.
    Infact, none of the job openings I've received seem to have anything to do with Computer Science - yes, its Computer based, but not Computer Science. Its the kind of job anyone could train himself with a 3 month diploma.
    On the other hand, none of the "pure IT" companies have given me any callbacks yet. Its a bit depressing since my GPA is pretty good (3.6) and my CV isnt too shabby... but still no responses.
     

    Taking the SQL query job as a first step could work out.  After six months or so, if you are getting nowhere and starting to look for another job, you will have a "salary history".  Companies like to use your current salary as a starting point.

     



  • @GizmoC said:

    The comments and advice in this thread have been most helpful. Since I last made my post, I've started learning Python (its pretty cool, and I've always wanted to learn it).

    1) I face a strange dilemma. I have a few job prospects (thru my Uni's recruiting office) - but most of these companies are local businesses. In other words, eventho the starting salary is decent... the work is pretty mundane, and.. easy. For example, I have a job offer which essentially involves running simple SQL queries for the marketing dept. The pay is surprisingly good for such a simple job .. but I see very little scope for personal growth. I dont know what to do. Should I take the job and hope that eventually they will see my potential and promote me? Even if they do promote me in the future, I would end up as one of those managerial "IT" types... sure, my pay would be great and I would get to boss around the technically inept... but none of it would be Computer Science.
    Infact, none of the job openings I've received seem to have anything to do with Computer Science - yes, its Computer based, but not Computer Science. Its the kind of job anyone could train himself with a 3 month diploma.
    On the other hand, none of the "pure IT" companies have given me any callbacks yet. Its a bit depressing since my GPA is pretty good (3.6) and my CV isnt too shabby... but still no responses.

    Really "scientific" jobs (where you need your CS skills) are pretty rare outside the universities, thought they exist. Anyway, you should try to get a job as a programmer. Nothing less.

     

    2) Ok, this question is a bit off-topic. As I mentioned, I am learning Python. Eventho I understand the language, and its native constructs (like lists, dicts, tuples, etc)... I am finding it hard to get out of the Java mindset. I've started solving some of the problems here
    using Python but I find myself simply repeating "Java logic" and not using Python's native "power". Fortunately, I discovered some cool tricks myself that broke me out of the "Java box" thinking... but most of these tricks I just stumble across myself
    So.. I guess this is an open question.. does anyone have any formal way of embracing Python, especially as a Java programmer. Even a few links would help.

    This is the most normal problem in the world of programming - every programmer stumbles into it - and maybe the best way to solve it is to read and understand a lot of good code in the new language you are to learn.
     



  • @GizmoC said:

    2) Ok, this question is a bit off-topic. As I mentioned, I am learning Python. Eventho I understand the language, and its native constructs (like lists, dicts, tuples, etc)... I am finding it hard to get out of the Java mindset. I've started solving some of the problems here

    using Python but I find myself simply repeating "Java logic" and not using Python's native "power". Fortunately, I discovered some cool tricks myself that broke me out of the "Java box" thinking... but most of these tricks I just stumble across myself
    So.. I guess this is an open question.. does anyone have any formal way of embracing Python, especially as a Java programmer. Even a few links would help.
     

     Fun way to learn python, and some things kind of force you into doing it the python way.
     



  • Learn unix/linux - both from a system administration and development perspective. 

    (all the old unix gurus are going into retirement - at the same time that unix/linux is becoming more important in the datacenter -- probably an opportunity there for folks to automate and manage those systems)

Log in to reply