I'll be graduating in the next month or so with a masters in software and electronic systems engineering and I feel I'm in a bit of a pickle.
I've kind of decided that I want to get into software development but I feel I didn't get profound in this area at uni because with this degree we sway between electrical and computer science modules and unfortunately it feels that I don't specialise in anything but the degree itself sounds good on paper for employers so...
I feel I'm going to struggle to get my foot in the door in the software development world because I have no experience and only really know the absolute basics of programming languages.
I recently switched to Linux to try and help me more in this area but I find my self not really exploiting the power of Linux with regards development and instead find myself booting into Ubuntu and just launching dota 2 and playing it too much which is probably another issue entirely.
So in the short term I'm going to work on my coding skills through a tool called exercism to keep my coding skills fresh for when I'm applying for jobs.
So basically I'm asking for some advice in how I can start to become a serious software developer and not get frightened when I see jobs asking for SQL, ruby, agile development etc that I have really no experience with.
Apologies for the long post but this is a good time to ask since I'm graduating very soon.
If you want to learn basic practical programming and algorithmic thinking you should start solving some exercises for example on:
or any other similar website. SQL is actually very easy so I think you can learn it from online tutorials. If you want to learn dealing with a real world problems and get some practice working on bigger project with people the best way to do it is joining open source project. You will meet many experienced people who could help you to learn many things like good practices, useful tools, agile development, git, linux etc. It would also be easier to find a job since that kind of project could be a proof of your skills for potential employer. Once you will get some experience you can also show off/check your skills in some online contests.
There is no reason to specialize at this point anyway...Having a wide range of knowledge right after uni is actually a good thing.
The best suggestion is first find book and study abot agile development. It would be useful to at least know the development process in theory.
Secondly look for graduate positions and internships on the subjects you find interesting and study specifically on the skills they are asking before you apply. If a company finds that you have the basics to get the job done expect that they will train you. At least the first 6 month in a new job as a graduate is training and learning.
Practice with projects you like. Why not look around open source projects or frameworks with free development kits and practice. Preferable on things you like.
I would also like to add that automation programming and scripting is a good skill to learn.
If you end up at a company that does a lot of manual IT work, you can definitely save the company a lot of time and money by developing and maintaining the automation code.
I'll definitely check out SPOJ, what IDE do you recommend to use with the likes of the Java, C++ and Python problems. I usually wrote the code on atom when I was trying out the exercism tool and then compiled on the command line but I would rather have done it within an IDE. I guess I can't go wrong with eclipse.
For C++ and Python on Linux I mostly use vim ( customized with gazillion of extensions) and compile from command line and write my own makefiles for more complicated projects. On Windows Visual Studio is pretty cool (with VsVim to get vim features) I use it mostly for C++ and C#. For Java I use InteliJ, Eclipse and Android Studio for Android dev. When I need window-based UI I use QT Creator.
Ok thanks man, it'll be a couple of weeks before I start to get stuck into this as its been an intense few months with uni but I'm excited to see where this goes.
I would like to say that software development is more than programming. It's about development not only programming. ️ If you are able to pickup a language and understand the core libraries, you should be able to make it. What I mean is, you are applying to be a developer not a programmer.