At least in the US, the key is that you need to be able to do what's described in the description. The way you got those skills less important.
HOWEVER- there are companies that do screening where it helps tremendously for an entry level position if you have:
- B.S. or B.A. Degree in something
- Preferably a B.S. in something vaguely related to computers - like Computer Engineering, Software Engineering, Computer Science, IT, Math, or something similar. Even EEs, Physics, or any other science is likely to get you more opportunities than, say, Linguistics or Fine Arts.
- A good GPA
This largely has to do with the company's screening process and the number of applicants they have. The less formal the company, by and large, the less restrictive the screening.
In the end, I have little doubt that you can get a job doing "software engineering" provided you can do what they say in the description and you can make that case through your resume and the interview. The definition of "engineering" as something highly legislated and baselined is unique enough to the given country that it won't particularly translate internationally. Some professional certifications might - it all depends on the certification and the specialty it demonstrates.
As far as a resume goes, I'd recommend highlighting what you CAN do. Not what you haven't done. A classic resume format will include:
- your goals
- your education
- your technical skills
- your previous work experience
Leaving off a critical element is a fine way of demonstrating you don't have that element, you don't have to go above and beyond to say what you don't do. For example, if you have some number of years of college completed, but have not matriculated, mention where you went to school and how many years, and some key coursework. The lack of graduation date (or expected graduation date) is a direct tip off that you have not yet finished school.
When speaking to skills you gained through independent personal projects, you have two options, IMO, depending on how much space you have available.
for a younger candidate, I'd list the skills acquirer in a skills section - for example programming languages, methodologies, development tools, etc. And then list the personal project under "experience" with an annotation that this was a personal project. I met a candidate that had implemented dynamic web server code this way, on a game site, and when he provided the link, I went above and beyond to play with his site and get a sense of what he'd done - it was a real win for our discussion.
for a more experienced candidate with an experience list a mile long - just stick the new skills in the "skills/knowledge section" unless the project is unbelievable and available for review. For example, if you coded a big part of Hibernate - put that on there!!! but if you made a web server for your bingo group... I'm probably more interested in the big company that employed you for the last 3 years...
My general philosophy is - it's your job to show the company why they SHOULD hire you. It's their job to vet whether or not you are the best fit for the position and they will do that by taking you into account in comparison to their larger pool of candidates. If every other applicant has a formal degree and professional certification, then you may be out of luck... but if not, you may have the perfect skill set.