Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Final year CS student needing some advice on industry

Options
  • 06-09-2011 9:32pm
    #1
    Closed Accounts Posts: 5


    Hello all,

    This question is from a 4th year CS student just on where to put my efforts this year in preparation for the industry.

    This question comes because I got myself an internship with a fairly successful web consultancy firm during the summer.

    The main thing i took away was this: College does not prepare you for anything!

    It is actually ridiculous how much colleges have been letting slip by and churning out idiot after idiot. My primary language was Java but only the SE. I never even touched EE and its all i seem to be hearing about on the job market (excluding android).



    There seems to be 2 sides to this coin.

    On the one side we have the colleges who are graduating people who haven't the first notion of programming. I mean I know classmates who cant use the most basic data structures and I'm not talking about binary trees or graphs (they wouldn't be considered easy to most anyway), I'm talking arrays, vectors or even the concept of casting.

    Then on the other side we have the recruiters who's expectations are ridiculous, criminal and just downright stupid.

    It seems like knowing 1 or 2 languages isn't enough. If you say you know language 'x' then your automatically expected to know whatever framework they're using right of the bat.
    This seems incredibly specialized and so narrow in scope of what students know. I have no idea how any CS student would be able to fill some of the roles. Bare in mind that this rant only applies to about 50% of the job posts targeting graduates. another 10% are fakes or just downright stupid (e.g recent graduate with 3-4 years experience and 450+ points in the leaving cert.....yeah), maybe 30% of the jobs actually sound doable. It would be those 30% I'd target.


    So I've come to the final part of my question and the point of all this. What I've learned is I can't rely on my college education alone. I need to do my own projects and develop my own skills. I blame myself for it taking me this long to realize it and now I'm trying to refocus my goals.

    So i ask, where should i put my study efforts? What should i focus on to make sure that i can secure a place in the industry post graduation. Not just any place though, a respectable one where my skills would peak and not just writing getters and setters all day.

    Do i pick a language and just learn every framework out there for it? Which is more valuable, one big project or multiple smaller ones.

    I might be getting my hopes up a bit too much that I'll come to any consensus on this but i figured asking the guys who've been through this before might help a little.

    The end result of my research will be a bullet point list of what i absolutely need to do and whats a nicety so that when i get out of college, no matter what is thrown my way I'll be able to handle it and land a job heading for the top ranks (by top ranks i mean in skill, not salary)

    -Thank you


Comments

  • Registered Users Posts: 1,922 ✭✭✭fergalr


    0vertone wrote: »
    Hello all,

    This question is from a 4th year CS student just on where to put my efforts this year in preparation for the industry.

    This question comes because I got myself an internship with a fairly successful web consultancy firm during the summer.

    The main thing i took away was this: College does not prepare you for anything!

    Not on its own, and not automatically, no.

    Its a great place to learn your fundamentals, which it can be hard to find time to work on later.
    You also have a lot of free time in which to pick and choose what else you want to learn.

    If you come out of college, fully prepared for your first job, with full knowledge of all the modern APIs and frameworks, all the industry practices you need, etc, then you've done college wrong.

    Do a little bit of that, so you can get a first job, and learn those things.
    But focus on fundamentals.

    0vertone wrote: »
    It is actually ridiculous how much colleges have been letting slip by and churning out idiot after idiot.

    Yes, that's true, and its a big problem.
    It appears to be hard for colleges to fail people.
    0vertone wrote: »
    My primary language was Java but only the SE. I never even touched EE and its all i seem to be hearing about on the job market (excluding android).

    That's fine.
    You should not come out of college as a fully fledged J2EE developer.
    If you can program well in Java, and know things like data structures, algorithm fundamentals, etc then that's a great place to be.
    People hiring grads shouldn't expect detailed knowledge of J2EE.

    Ideally, they can reasonably expect the grads to be able to learn that stuff, and not have to learn how to program on the job.



    Look, at the moment, people that can program have great career options. A good grad, with J2se experience, should be able to learn J2EE pretty quickly.
    0vertone wrote: »
    There seems to be 2 sides to this coin.
    On the one side we have the colleges who are graduating people who haven't the first notion of programming. I mean I know classmates who cant use the most basic data structures and I'm not talking about binary trees or graphs (they wouldn't be considered easy to most anyway), I'm talking arrays, vectors or even the concept of casting.

    Then on the other side we have the recruiters who's expectations are ridiculous, criminal and just downright stupid.

    People take recruiter written job descriptions with a very large grain of salt. A lot of good people just try and avoid dealing with recruiters, full stop.

    The recruiters are only putting rubbish on job descriptions, because they dont really understand what they are writing.
    Its not criminal.
    It is a bit stupid.
    Don't lose sleep over it.

    0vertone wrote: »
    It seems like knowing 1 or 2 languages isn't enough.
    Actually, if you come out as a grad, actually knowing how the program in a single language, like Java, well, then you are probably in good shape, job wise.

    This is bad - grads should really finish, knowing several languages - but the reality is that the market is pretty good for developers at the moment.
    0vertone wrote: »
    If you say you know language 'x' then your automatically expected to know whatever framework they're using right of the bat.
    No, you aren't, unless people are being stupid.
    0vertone wrote: »
    This seems incredibly specialized and so narrow in scope of what students know. I have no idea how any CS student would be able to fill some of the roles. Bare in mind that this rant only applies to about 50% of the job posts targeting graduates. another 10% are fakes or just downright stupid (e.g recent graduate with 3-4 years experience and 450+ points in the leaving cert.....yeah), maybe 30% of the jobs actually sound doable. It would be those 30% I'd target.


    So I've come to the final part of my question and the point of all this. What I've learned is I can't rely on my college education alone.
    Not on your college syllabus, alone, no.
    0vertone wrote: »
    I need to do my own projects and develop my own skills. I blame myself for it taking me this long to realize it and now I'm trying to refocus my goals.
    Yes, ideally you should have realised that before 4th year.
    But don't worry about it. Many people don't, and at least you've realised it now.
    0vertone wrote: »
    So i ask, where should i put my study efforts?
    Fundamentals, make sure you can code well.
    Make sure you learn lots about algorithms, data structures, concurrency, whatever cool final year options you can do.
    That should be your main focus.


    Then, at some point, spend some time doing a project, in whatever technology stack and area you'd like to work after college.
    Don't do a huge project.
    Do a small project, with a small scope.
    Do one you can finish well.
    If you can, put it on the Internet.

    Get other people to look at it, and give feedback.

    The put this on your CV.
    Discuss it at interview with employers.
    Impress them by showing your initiative, and ability to get a project done, and finish something.
    And you'll be fine.

    0vertone wrote: »
    What should i focus on to make sure that i can secure a place in the industry post graduation. Not just any place though, a respectable one where my skills would peak and not just writing getters and setters all day.

    Do i pick a language and just learn every framework out there for it?
    Which is more valuable, one big project or multiple smaller ones.

    I might be getting my hopes up a bit too much that I'll come to any consensus on this but i figured asking the guys who've been through this before might help a little.

    The end result of my research will be a bullet point list of what i absolutely need to do and whats a nicety so that when i get out of college, no matter what is thrown my way I'll be able to handle it and land a job heading for the top ranks (by top ranks i mean in skill, not salary)

    -Thank you

    You are asking the right questions. Its very subjective, but to me, you sound like you'll be fine. Read lots - lots of 'what should a programmer know' type stuff out there on the internet.

    Maybe read this:
    http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html

    and lots of other things like it.


  • Registered Users Posts: 2,021 ✭✭✭ChRoMe


    Start learning about hibernate, source control, jquery and struts. That will get you a job doing java web dev.

    Its correct that a university doesn't produce JavaEE developers btw, this sort of specialisation is dependent on the person.

    Regarding recruiters, they are a necessary evil in the market, IT jobs specs are notoriously bad.

    No one expects you to have EVERYTHING on the list, those lists are a fantasy, you just need the core technologies.


  • Registered Users Posts: 1,311 ✭✭✭Procasinator


    You can also do some Java certification, which some employers seem to give credence too. This is particularly true when competing for graduate positions, as it verifies that your Java knowledge has been examined outside of college and you will have a piece of paper most graduates won't have.


  • Registered Users Posts: 2,021 ✭✭✭ChRoMe


    You can also do some Java certification, which some employers seem to give credence too. This is particularly true when competing for graduate positions, as it verifies that your Java knowledge has been examined outside of college and you will have a piece of paper most graduates won't have.

    Personally I give more weight to a decent personal project than a cert when interviewing candidates, YMMV etc.


  • Moderators, Society & Culture Moderators Posts: 9,689 Mod ✭✭✭✭stevenmu


    0vertone wrote: »
    So I've come to the final part of my question and the point of all this. What I've learned is I can't rely on my college education alone. I need to do my own projects and develop my own skills.
    College is really there to give you the tools to do this, not to give you on the job training for a specific job. As a competent CS grad you should be equipped to quickly pick up new languages and technologies as needed. But that's not a very helpful argument to have right now :).

    Some things I'd recommend being familiar with are:
    -Database driven development. Most jobs out there will involve database usage, make sure you can design a database, tables, columns, indexes, views, stored procedures etc. Doesn't really matter if it's SQL Server, Oracle, MySQL etc, most of the same principles apply across them all.
    -Design patterns. Be familiar with things like n-tier, MVP etc. Even a basic understanding of these concepts will be very helpful. When researching patterns, you'll probably come across anti-patterns too. Also helpful to know, but not as helpful.
    -Web services play a big part of many modern applications. Learn them. XML is still in wide use, even though it's not as fashionable as it used to be, so learn how to work with. JSON is kind of taking oover there so learn that too.
    -HTML5 is the current king of buzzwords, so get to know HTML, Javascript and CSS and using AJAX/HTML5 techniques.


  • Advertisement
  • Closed Accounts Posts: 1 tafkas


    0vertone wrote: »
    Hello all,

    This question is from a 4th year CS student just on where to put my efforts this year in preparation for the industry.

    This question comes because I got myself an internship with a fairly successful web consultancy firm during the summer.

    The main thing i took away was this: College does not prepare you for anything!

    It is actually ridiculous how much colleges have been letting slip by and churning out idiot after idiot. My primary language was Java but only the SE. I never even touched EE and its all i seem to be hearing about on the job market (excluding android).

    People are trying to do something about this as it's a big problem for the software sector here. However, it's difficult to change the way the classical education system works.
    There seems to be 2 sides to this coin.

    On the one side we have the colleges who are graduating people who haven't the first notion of programming. I mean I know classmates who cant use the most basic data structures and I'm not talking about binary trees or graphs (they wouldn't be considered easy to most anyway), I'm talking arrays, vectors or even the concept of casting.

    Then on the other side we have the recruiters who's expectations are ridiculous, criminal and just downright stupid.

    It seems like knowing 1 or 2 languages isn't enough. If you say you know language 'x' then your automatically expected to know whatever framework they're using right of the bat.
    This seems incredibly specialized and so narrow in scope of what students know. I have no idea how any CS student would be able to fill some of the roles. Bare in mind that this rant only applies to about 50% of the job posts targeting graduates. another 10% are fakes or just downright stupid (e.g recent graduate with 3-4 years experience and 450+ points in the leaving cert.....yeah), maybe 30% of the jobs actually sound doable. It would be those 30% I'd target.


    So I've come to the final part of my question and the point of all this. What I've learned is I can't rely on my college education alone. I need to do my own projects and develop my own skills. I blame myself for it taking me this long to realize it and now I'm trying to refocus my goals.

    So i ask, where should i put my study efforts? What should i focus on to make sure that i can secure a place in the industry post graduation. Not just any place though, a respectable one where my skills would peak and not just writing getters and setters all day.

    I think the probability of not being able to find a job is small and given that you're asking these questions now, coupled with the amount of opportunities in the industry, you should have no problem finding a job that is not simply focused on 'writing getters and setters'.

    I'd suggest trying to figure out a bit more about what areas you'd like to work in - are you interested in web application development (frontend or backend?), mobile, dealing with large data set problems, etc. If you have a handle on which parts of the computing landscape interest you most, then this should guide which technologies you should focus on. If you don't know which, then play around with some small projects in each of area to see if you can figure out which appeals to you most.
    Do i pick a language and just learn every framework out there for it? Which is more valuable, one big project or multiple smaller ones.

    Wouldn't worry about learning every framework for a given language - new frameworks appear all the time, so in any case you'll most probably have to deal with new ones throughout your career.

    Given that you've Java as a base, I'd advise playing with some other languages to get some feel for the differences between them; try to understand the benefits of one language over another for different use cases.
    I might be getting my hopes up a bit too much that I'll come to any consensus on this but i figured asking the guys who've been through this before might help a little.

    The end result of my research will be a bullet point list of what i absolutely need to do and whats a nicety so that when i get out of college, no matter what is thrown my way I'll be able to handle it and land a job heading for the top ranks (by top ranks i mean in skill, not salary)

    -Thank you


  • Registered Users Posts: 8,449 ✭✭✭Call Me Jimmy


    I try not to worry about it. I'm in third year, they say "the market is good, the market is good" so I assume that if I keep up the work I can get a job, so I'm not stressing.

    I feel like of the fundamental stuff we've done so far, I understand it. I know java, actionscript (is that even a language?) and c++ well a couple other languages okay but whenever I see all these threads about dot net, c sharp, jsps servlets or any other thing that I just haven't happened to look at yet I feel ok because semantics are easy. It is only a matter of time before monkey see monkey do. Same goes for specific frameworks used by companies.

    In my last two years I'm focusing on the million small project ideas I have (some hobbyist like games) and others that I think will either be possibly commercially viable or at least a good experience. I don't code stuff I'm not interested in (except for assignments) which means I have a steady output of my own work.

    By the time I get to interviews I plan to have at least a half dozen little projects of my own to demonstrate a) I enjoy programming, b) I can bring something from conception through implementation and testing, and c) well I can't think of a c but if the company isn't impressed with a and b they can eat me, I'll go on the dole and animate children's cartoons.

    You sound like the type who doesn't need to be worrying, so relax man!


  • Registered Users Posts: 2,119 ✭✭✭p


    0vertone wrote: »
    It is actually ridiculous how much colleges have been letting slip by and churning out idiot after idiot.

    ....

    On the one side we have the colleges who are graduating people who haven't the first notion of programming. I mean I know classmates who cant use the most basic data structures and I'm not talking about binary trees or graphs (they wouldn't be considered easy to most anyway), I'm talking arrays, vectors or even the concept of casting.
    Small life/career tip for you. Don't assume you're better than those who don't get/like programming in your course, or that they're idiots. It may not be their passion, or expertise, but they probably have excellent skills than you lack and will most likely end up working with programmers and will need a theoretical understanding of what's involved, even if they're not coding themselves.

    Hell, they may well end up being your boss, because they're a better people manager than you, and doing a better job than you ever could, so try be humble. How well you do in your degree, is not a great measure of anything much really, except whether you interested explicitly in the things it grades.


  • Registered Users Posts: 1,922 ✭✭✭fergalr


    p wrote: »
    Small life/career tip for you. Don't assume you're better than those who don't get/like programming in your course, or that they're idiots. It may not be their passion, or expertise, but they probably have excellent skills than you lack and will most likely end up working with programmers and will need a theoretical understanding of what's involved, even if they're not coding themselves.

    Hell, they may well end up being your boss, because they're a better people manager than you, and doing a better job than you ever could, so try be humble. How well you do in your degree, is not a great measure of anything much really, except whether you interested explicitly in the things it grades.

    I think your advice is good, in that its important to never write anyone off or to look down on them as a person; and its also good to remember that people may have different sets of complimentary skills.

    But colleges shouldn't be graduating people from CS that don't know the extreme basics of programming (arrays, vectors, like the OP said). It is bad that they are doing this.

    How well you do in your degree isn't much of a measure of ability, performance, absolutely. But I think whether you know the absolute basics of what you've been studying for 4 years carries a much stronger signal.

    I've been managed before by people without detailed technical knowledge, who had not done CS, and, as you say, they had good managerial skills, and were good managers.

    But I think its a pretty bad signal, for everyone involved, when someone does 4 years CS and doesn't know the absolute basics.
    In general, I think its fair to say I probably wouldn't like to be managed by such a person; I'm sure there are exceptions.


Advertisement