The Student Room Group

Self-Taught programmer for software career?

If I’m a self-taught programmer, how do I know if I am proficient enough for a career in software engineering?
Reply 1
apply to some and see if you can pass their technical interview questions, be better if you have a portfolio with past projects if you dont have a degree
Develop a complex project.

A video game is good enough or something you can think of such as a project management system.
Have you taken the time to look at any junior/entry-level software engineering jobs and the requirements which employers are asking for? Have a look on websites like CWJobs or TechnoJobs for 'Junior software engineer' jobs or similar. Employers nearly always include a list of skills and technologies that they're looking for when advertising jobs, so look at each of those and ask yourself honestly whether you understand those things to the point where you'd be confident enough to sit in an interview and talk about them.

Most of the time, employers look for junior programmers who have a strong foundation in computational thinking and problem solving, as well as being strong in at least one modern, popular general-purpose programming language like Java, Python, C#, JavaScript, C++, etc. They'll often look for you to have a firm grasp on various paradigms - particularly 'OO' programming, and ideally at least some understanding of some Functional Programming concepts too.

Hopefully you'll have already built at least one reasonably large, non-trivial project while learning - whatever that may be (e.g. a web project, arduino project, Desktop application, game, etc.) -- being able to demonstrate that you can apply your skills to a project with a reasonably large amount of code, and that your code is fairly well-structured, easy for another programmer to understand and follow, and shows signs of an understanding of core software engineering/design principles is also going to be important.
(edited 5 years ago)
Reply 4
Original post by winterscoming
Have you taken the time to look at any junior/entry-level software engineering jobs and the requirements which employers are asking for? Have a look on websites like CWJobs or TechnoJobs for 'Junior software engineer' jobs or similar. Employers nearly always include a list of skills and technologies that they're looking for when advertising jobs, so look at each of those and ask yourself honestly whether you understand those things to the point where you'd be confident enough to sit in an interview and talk about them.

Most of the time, employers look for junior programmers who have a strong foundation in computational thinking and problem solving, as well as being strong in at least one modern, popular general-purpose programming language like Java, Python, C#, JavaScript, C++, etc. They'll often look for you to have a firm grasp on various paradigms - particularly 'OO' programming, and ideally at least some understanding of some Functional Programming concepts too.

Hopefully you'll have already built at least one reasonably large, non-trivial project while learning - whatever that may be (e.g. a web project, arduino project, Desktop application, game, etc.) -- being able to demonstrate that you can apply your skills to a project with a reasonably large amount of code, and that your code is fairly well-structured, easy for another programmer to understand and follow, and shows signs of an understanding of core software engineering/design principles is also going to be important.

How long is “reasonably large” code
Original post by Techtech123
How long is “reasonably large” code


Try not to think of it in terms of length or number of lines-of-code, and focus on complexity with enough of your own code to be able to showcase your skills in all of the key areas like computational thinking and software design to employers. it's really helpful when applying for jobs to show that you've already had some experience with more complicated projects, implementing some of your own algorithms and using common OO techniques and design patterns in a meaningful way.

For example, a typical web app might have different features including user authentication, navigation, various screens and pages for content, submitting data in forms into a database, validating user input, etc. An app like that is probably going to involve dozens of different classes, although those classes won't necessarily all be particularly large by in themselves; it's normal for individual functions to be fairly short and concise (e.g many functions may only have a few lines of code if they're just doing something simple like checking a condition and returning a result. Also, more than 30-40 lines of code in a single function is usually too much). It's also normal for individual classes to only have a few methods in as well.

Quick Reply

Latest

Trending

Trending