Hey there! Sign in to join this conversationNew here? Join for free

How to get into the Software Development Industry Watch

    • Thread Starter
    Offline

    0
    ReputationRep:
    Hi, I am currently a 2nd year physics undergraduate and at the end of my degree I would be looking to secure a graduate software engineering course.

    If I was to go back, I would probably have choose a computer science course but I do enjoy physics and I understand an analytical science degree such as physics is still very relevant.

    I am looking advice on how best to improve my CV and skills-base with a look to secure a graduate placement, in my situation. Whilst of course concentrating on obtaining a 1st/2.1 in my degree, what other things should I be learning? What kind of skills and know-how will comp-sci graduates have that I won't? At the minute my CV isn't the strongest and to be honest any ideas are welcome.

    I have learnt the C to a certain degree, in that I am able to model systems and build rudimentary programs to numerically solve equations etc.. Should I branch out and learn a second computer language or continue to focus on C (or perhaps venture into C++).

    Thanks for any advice.
    Offline

    3
    ReputationRep:
    I think the best thing would be for you to have some solid experience working on real-world applications. Basically, try to get involved with some open source projects: find a nice, compact C++ program, download the source, trawl through it for an hour or so trying to work out how it fits together, then go onto their bugtracker and look for a decent, trivial bugs that looks like it should be easily fixable. Fix it, compile, submit, repeat.
    • Thread Starter
    Offline

    0
    ReputationRep:
    Thanks estel, I guess that would be a good way to see how things really happen in the real world which is something I know nothing about.
    Offline

    3
    ReputationRep:
    CompSci graduates will know a lot more than just how to program and fix bugs. They are likely to have a solid understanding of the software engineering process. This means they will know exactly how to design a program via abstractions (use cases, class diagrams) and how to schedule the development of a software program. They will also be armed with knowledge of a wide variety of algorithms and data structures, and if you want to be a programmer worth your weight then you ABSOLUTELY have to know about data structures and algorithms. If you are really serious about this, then I would learn everything there is to know about software engineering methodologies, organisation, design, and then look into the different types of data structures and critically analyse their different uses and benefits. There's a lot, software engineering is no cakewalk.
    Offline

    2
    ReputationRep:
    (Original post by coldplasma)
    CompSci graduates will know a lot more than just how to program and fix bugs. They are likely to have a solid understanding of the software engineering process. This means they will know exactly how to design a program via abstractions (use cases, class diagrams) and how to schedule the development of a software program. They will also be armed with knowledge of a wide variety of algorithms and data structures, and if you want to be a programmer worth your weight then you ABSOLUTELY have to know about data structures and algorithms. If you are really serious about this, then I would learn everything there is to know about software engineering methodologies, organisation, design, and then look into the different types of data structures and critically analyse their different uses and benefits. There's a lot, software engineering is no cakewalk.
    His degree is still valid though? Is much of this not picked up through experience, training and such,- which he can obtain without a computer science degree?
    I mean, he's not really at much of a disadvantage, provided he starts working now?
    Offline

    3
    ReputationRep:
    Of course he is at a disadvantage. Yes, his degree shows that he has a great deal of analytical skills, but it bares almost no resemblance to the software engineering industry and by no means demonstrates he has the knowledge to program in the workplace. When you apply for software engineering jobs, they don't ask you exclusively brainteasers (although a lot of jobs do ask the odd brainteaser, for some reason), they ask you solid technical questions relating very specifically to software engineering (how would you find a bug in a program? how would you apply object-oriented principles to the design of a program? why is polymorphism helpful? when is a binary tree better for searching than a hash-map?). Do you see what I'm saying? These are all things a compsci/softeng graduate should and will most likely know.
    Offline

    2
    ReputationRep:
    (Original post by coldplasma)
    Of course he is at a disadvantage. Yes, his degree shows that he has a great deal of analytical skills, but it bares almost no resemblance to the software engineering industry and by no means demonstrates he has the knowledge to program in the workplace. When you apply for software engineering jobs, they don't ask you exclusively brainteasers (although a lot of jobs do ask the odd brainteaser, for some reason), they ask you solid technical questions relating very specifically to software engineering (how would you find a bug in a program? how would you apply object-oriented principles to the design of a program? why is polymorphism helpful? when is a binary tree better for searching than a hash-map?). Do you see what I'm saying? These are all things a compsci/softeng graduate should and will most likely know.
    Interesting, thank you
    Offline

    14
    ReputationRep:
    We accept graduates from any discipline as long as they show an aptitude for software development (the right kind of logical mindset and so forth) - and we don't find that it takes non-CompSci grads much time to pick up what they need. The disadvantage isn't significant for us.
    Offline

    1
    ReputationRep:
    Just get involved with building some large software systems, and if you like it and are good at it, then you are halfway there. There are a lot of engineering jobs that use embedded systems where your physics degree will be an advantage, and that will actually involve programming day-to-day, instead of physics. The skills required for that are some knowledge of embedded electronics and C++. For those types of jobs, a good understanding of physics is a definite advantage.

    Look at these types of job roles: http://www.indeed.co.uk/jobs?q=junio...B%2B&l=england - and see what the companies are looking for.
    Offline

    2
    ReputationRep:
    (Original post by ThePants999)
    We accept graduates from any discipline as long as they show an aptitude for software development (the right kind of logical mindset and so forth) - and we don't find that it takes non-CompSci grads much time to pick up what they need. The disadvantage isn't significant for us.
    We?
    • Thread Starter
    Offline

    0
    ReputationRep:
    coldplasma what you seem to be saying is exactly what I am talking about. Would you or anyone else be able to recommend a book for computer science fundamentals and methodologies? Perhaps studying a good 1st (going on 2nd) year core textbook would do me well in trying to address these disadvantages.

    Some encouraging replies
    Offline

    15
    ReputationRep:
    (Original post by Ricky116)
    coldplasma what you seem to be saying is exactly what I am talking about. Would you or anyone else be able to recommend a book for computer science fundamentals and methodologies? Perhaps studying a good 1st (going on 2nd) year core textbook would do me well in trying to address these disadvantages.

    Some encouraging replies
    Objects First With Java: A Practical Introduction Using BlueJ

    It will teach you much of what you will need for a Software Engineering job.
    It teaches you the principles of OOP, how to program well (including how to comment properly, etc.), and by using Java as the learning tool you also walk away proficient in a heavily used Industry language.

    I could not recommend it more, and much of what you read there (about proper programming style, testing, etc.) are directly transferable to even non-OOP languages such as C.
    Offline

    2
    ReputationRep:
    You start your own software project with other graduates to build up experience and also you could make a bit of money if it's good.
    Offline

    3
    ReputationRep:
    (Original post by Ricky116)
    coldplasma what you seem to be saying is exactly what I am talking about. Would you or anyone else be able to recommend a book for computer science fundamentals and methodologies? Perhaps studying a good 1st (going on 2nd) year core textbook would do me well in trying to address these disadvantages.

    Some encouraging replies
    http://stackoverflow.com/questions/1...er-should-read
    Offline

    14
    ReputationRep:
    (Original post by wizz_kid)
    We?
    Metaswitch Networks, as per my profile. http://www.metaswitch.com
    Offline

    2
    ReputationRep:
    (Original post by ThePants999)
    Metaswitch Networks, as per my profile. http://www.metaswitch.com
    Right!
    Offline

    0
    ReputationRep:
    I don't think your worry is learning different languages, it's about mastering a single one.Once you master C, all you have to worry about is syntax when dealing with C++ or Java
    Offline

    0
    ReputationRep:
    (Original post by AshK01)
    I don't think your worry is learning different languages, it's about mastering a single one.Once you master C, all you have to worry about is syntax when dealing with C++ or Java
    not really, there are some more fundamental differences - using object orientation for example, as well as not having to worry about memory allocation in Java...
    Offline

    14
    ReputationRep:
    Yeah - sorry Ash, but that statement is pretty misleading.

    Well, sure, you CAN write C++ or Java by writing C-with-converted-syntax, but you'll be writing crap C++ or Java.
    Offline

    16
    ReputationRep:
    I think he was trying to get at the idea that almost all principles in programming are pervasive across all languages. Syntax, idioms and paradigms may change, but the skill set is the same.

    I wouldn't say that means you should just "master" one language, though. I would, however, advocate learning one language and then learning others as and when you need them.
 
 
 
  • See more of what you like on The Student Room

    You can personalise what you see on TSR. Tell us a little about yourself to get started.

  • Poll
    What newspaper do you read/prefer?
    Useful resources
  • See more of what you like on The Student Room

    You can personalise what you see on TSR. Tell us a little about yourself to get started.

  • The Student Room, Get Revising and Marked by Teachers are trading names of The Student Room Group Ltd.

    Register Number: 04666380 (England and Wales), VAT No. 806 8067 22 Registered Office: International House, Queens Road, Brighton, BN1 3XE

    Quick reply
    Reputation gems: You get these gems as you gain rep from other members for making good contributions and giving helpful advice.