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

What's expected of a graduate software developer?

Options
  • 01-05-2012 7:41pm
    #1
    Registered Users Posts: 66 ✭✭


    Hi everyone. My background is in electronic engineering but I'm considering a switch to a software role. I have a bit of background in C++ and quite a bit of Matlab. I'm currently learning Java (started a few weeks ago). My question is if I were to make the switch and apply for a graduate software developer job what would generally be expected, i.e. what maths topics, what level of proficiency in what languages etc.
    I know a lot of these jobs do advertise that they are open to applicants from engineering as well as computer science so I'm just trying to get an idea on what areas I would need to come to grips with. Thanks for any input you can offer!


Comments

  • Registered Users Posts: 11,979 ✭✭✭✭Giblet


    This is a good question actually. A decent graduate should know the language basics fairly well. I generally ask things like protection levels, inheritance, abstraction and interfaces, with reasoning behind the use of each. Some projects showing proficiency in thinking is important, as well as being something that stands out and shows real interest in programming. The standard database stuff, such as joins and other basic queries are a bonus. Other than that, it's more about the attitude towards programming, an apparent willingness to learn and if they would fit in well with our team. Anything above that is pretty much guaranteed a job. Honestly, there isn't that much expected out of college.


  • Registered Users Posts: 586 ✭✭✭Aswerty


    I came from engineering and went in to software development and found that the main shortfall I had was an unfamiliarity with sorting algorithms and simple data structures which some of the more prestigious companies grill you on. So the likes of quick sort, linked list, hash tables, etc..

    Recently had a graduate interview with Microsoft where I was asked to implement a method to reverse a linked list during a remote interview (did not go well! though a simple task on reflection). Of course many companies don't get this technical but it's worth making sure you're familiar with these fundamentals of computer science.

    I have a a B.Eng in Mechatronics and M.Eng in Telecomms and have not had a problem getting to interview stages. Think it was something like 3 interviews from around 6/7 applications when I left college. The B.Eng in Electronic Engineering is more relative than my Mechatronic background so I don't think you'll have an issue coming from your background.


  • Registered Users Posts: 66 ✭✭ManannanMacLir


    Thanks Giblet & Aswerty, this is exactly the kind of feedback I was hoping for! I have the M.Eng in EE also so that should stand to me. I have been trying to broaden my knowledge and I keep hearing about sorting algorithms, linked lists etc. which are totally foreign to me. I have picked up a few books and plan to get into them right away so it's good to know I'm on the right path!


  • Registered Users Posts: 1,686 ✭✭✭RealistSpy


    In addition to the other replies you definitely need to know at least one scripting language. Python or JavaScript. To be on the safe side have experience in xml & sql

    Also basics like:
    What an Interface is.
    Difference between an object and a class.
    What an abstract data type is.
    What a framework is.


  • Registered Users Posts: 66 ✭✭ManannanMacLir


    My only worry is that if I try and learn too much in say 2 months (when I'm considering looking for a new job) is that I won't know any of these new things very well. I'm learning Java for the first time so is it much more of a workload to also learn Python or Javascript? I did play around with Python & Ruby a few weeks ago and enjoyed it.


  • Advertisement
  • Registered Users Posts: 11,979 ✭✭✭✭Giblet


    Pick a project to do, use whatever it takes to deliver that project.


  • Registered Users Posts: 1,686 ✭✭✭RealistSpy


    If you want to do a project I would suggest something to do with the google app engine.


  • Registered Users Posts: 1,082 ✭✭✭Feathers


    My only worry is that if I try and learn too much in say 2 months (when I'm considering looking for a new job) is that I won't know any of these new things very well. I'm learning Java for the first time so is it much more of a workload to also learn Python or Javascript? I did play around with Python & Ruby a few weeks ago and enjoyed it.

    I would say yes, it is too much & would disagree that you'd need them, much more of a nice to have.

    It really depends on the types of places that you're looking to apply. I'm in a web agency & hiring grads is done more on attitude & the type of person that current tech knowledge. I came in through their grad scheme & from a front-end web background and was given the chance to learn Java from scratch while here.

    But if you're looking at Google/Microsoft, obviously the entry requirements are going to be a lot higher & more competition for limited places.

    One thing that our guys look out for is contribution to open-source projects. If you have a few things up on Github, even if you're just playing around with them — shows you code for pleasure & are interested in the wider field that just getting a job. Also if you'd be comfortable enough to contribute to some open-soure project like a CMS, even just bug fixing. Definitely a strong talking point for CV/interview.


  • Registered Users Posts: 66 ✭✭ManannanMacLir


    Thanks for all the great input! Really delighted with the response. If anyone else wants to chime in with their experience/opinion that would be great!


  • Registered Users Posts: 1,645 ✭✭✭k.p.h


    I recommend getting the book Crafting Code with Test-Driven Development and working through it. It's a couple of years old but the way Java is thought in the book is excellent.

    Once you have the usual programming basics it just paves a way to understanding "how" and "why" in everything Object Orientated related, while having tons of best practice examples and technique. And actually a lot more...

    I went from doing the usual college assignments, struggling to put everything into context to looking at the Java source understanding what exactly is going on in a couple of weeks. (Had to do some extra research on Generics and Interfaces too though)

    Also when I'm writing code now I am always aware of how crap it is..! The book puts lots of emphasis on re-factoring and the ol Java idea of short simple and easy to understand (and encapsulation). It will definitely help you leap frog the old bewilderment stage, if you give it a go I really doubt you will regret it.


  • Advertisement
  • Registered Users Posts: 20 lowlifer


    is it much more of a workload to also learn Python or Javascript? I did play around with Python & Ruby a few weeks ago and enjoyed it.

    Do you have any projects from school? be it high school, college, university? any interesting homework/lab work/class work? any personal projects? like someone said, ever contributed to open source software? mentioning them in your CV is GREAT, it shows that you didn't just go through school because sent you, but you have a passion for what you do and you want to get involved.

    I'll quote something from my first company's Careers page:
    Suggested Style
    Please keep in mind that the main purpose of your CV is not to tell us about you. It is to:
    Prove that you are able to do the job
    Prove that you are the best fit for the job, from all the candidates

    We don't have the physical time to interview every single candidate so we use the CV to filter only the most promising ones.

    This is why, if you want to write a great CV, you should focus on the DO factor. Tell us what you DID. It doesn't matter where - a previous job, on a hobby or school project, etc. Just show us that you were able to DO stuff related to the position you are targeting, and you'll convince us that you can do the same on the job.

    Write in your CV

    These are some of the things that should be included in your Resume.

    Employment - if available
    Detail each company, position, product.

    Other Experience - only if relevant to the target position
    Include any projects you worked on, either on your own or in a team, for fun or for school, open source or paid for.

    Education
    Specify the degrees you obtained, from which schools and universities and the grades you got.

    Languages
    The languages you speak.

    Achievements
    Personal achievements, like contests, prizes, etc.

    References
    Is there anybody (teacher, manager, colleague) that can vouch for you and give you a reference?
    When applying for development positions do not forget to specify the programming languages, OSs, tools and technologies you've used. Describe as much as possible about each project: its size, components, modules used, user interface, interactions, algorithms. Send source files if possible.
    Try to present your knowledge, education and experience from an angle that relates it to the position you are targeting.

    Omit from your CV

    The following stuff is irrelevant and should be omitted from your CV:
    Your picture
    Your non-work-related hobbies
    Your stress resistance
    Your availability to work long hours
    Your driving license and your willingness to use it for work purposes
    The full list of classes you took in University

    Also please avoid writing unsupported lists of skill words (like: "Office, Java, etc.") - tell us what you DID with them instead.

    Sure, this is focused on writing a CV, but it also shows what they're looking for in a candidate.

    To the point: you're expected to have good knowledge of the language's syntax and you should have at least heard everything about its features. Knowledge in every possible area covered at engineering schools is preferred: databases, sockets, linux, design patterns, communication protocols, computer architecture, compilers, pretty much everything you get to do in school thinking "when the f will I have use of this?!".

    Above all, you should be the type of guy who gets things done. No company will hire some autistic genius so they can babysit him for two months, hoping he'll become productive. You crammed your way through school and got all As? great, we have a big client in Australia with a headless slackware who can't update the software. Fix it.

    If you're passionate and bright, you can become productive within 2-4 weeks, so it will be in their interest to have you.


Advertisement