On 12/12/17 19:43, Matthew Ngaha wrote: > Hi all. I took 2-3 years off in 2012 to teach myself programming. I > learnt basic Javascript & Python with some Django. I don't have a > Computer Science (CS) degree
The key issue here is what is true in your locality. In my part of the world the vast majority of programmers do NOT have a CS (or software engineering degree - something quite different). But they a majority do have a degree with a numerical bias(science, engineering, maths etc) On the other hand I've worked with programmers who studied business law, zoology and even music. And quite a few with no degree at all. But I know of other places where a degree is essential and in some places it has to be computing related. So it all depends on your local practices and I can't comment on that. > ...so I never applied for a job because I > always thought I still had lots to learn and most jobs say a CS degree But you certainly do have a lot to learn, and in computing you never stop having lots to learn. It is one of the fastest moving industries around. Much (most?) of what you learn today will have changed in 10 years time. But there are things you can learn now that won't ever change. And that includes the principles of design - an aspect all too often ignored by people learning "programming" But you can't build a significant system of any kind without an underlying design. And you can't build big systems without understanding architecture. And there are standard design patterns and architectural patterns that you can learn (MVC, State machines, Client-Server etc). There are principles (like coupling and cohesion) and axioms like DRY. There are performance patterns too, understanding O() notation and the factors that affect it. Then there are industry practices and tools. Do you know about version and release control? Debugging tools? Profiling? Hopefully you see where I'm going - you never stop learning and you can waste a lot of time becoming an expert in things that will be of no use in a few years, or you can focus on principles that are the very basis of system design and construction. There is a big gulf between being a "programmer" and being a professional software engineer. Your best bet may be to get a job in a small one man shop building small web sites for small businesses. That way you can learn about the deeper issues as you go, in a kind of apprenticeship. But don't get hung up on languages or frameworks - these things come and go like fashions on a catwalk. If you understand the principles you will learn new languages in a matter of days and weeks. Frameworks in weeks or months. > I haven't touched programming in 2 years. I've forgotten most of what > I learnt now. Two years is not long. Try it in your spare time. If it isn't coming back within a week then maybe its not for you, or maybe just as a hobby. But if you have a talent for it you should find it falls into place quite quickly. But programming for fun is a worthwhile thing too. I never code for profit these days but I still write code every week and usually have 2 or 3 projects simmering away at any one time. They make my life easier and I enjoy coding them - it's a win-win. > Can I get a junior programming job without a CS degree? > When do you know you're ready to start applying for jobs? How can a > self learner ever know? That all depends on local circumstances and the individual. If in doubt try joining an open source project. If you can get to the stage where the other developers treat you as an equal then you are definitely ready for a job! (And it's good to have on your CV/resume) HTH -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor