I have a first-class Computer Science degree from University of Glasgow, and since then, I’ve been working at Barclays for 3 years. I started as an intern, was offered a graduate position, and now have rolled off into a permanent front-end developer role.
In my career so far, and throughout university, I have used a good mix of technologies. Amongst others: Java, Spring Boot, Jenkins, Kubernetes, and Angular. Every time I learn something new, it takes a while for things to set in properly. Challenges emerge, but a lot of my passion with software engineering comes from working through these problems and the continuous improvement that comes from that.
Angular is the main technology I’m using at my role at Barclays. It’s a powerful web framework used throughout the industry for creating responsive, reactive, and reliable applications. The great thing about using a framework like Angular to develop your applications, is that a lot of the more broad, difficult technical decisions have already been made for you. This is done in the form of built-in tools, APIs, and libraries, by incredibly knowledgeable people. In the case of Angular, it is maintained by a dedicated team at Google – providing great support, with constant updates.
The downside in attempting to learn a new technology as substantial in size and scope as Angular, is that it can be incredibly overwhelming. Many people, including myself, have experienced looking through the vast number of features and syntax to learn, becoming discouraged to try, for fear of failure. The main thing I have learned in my years of programming, is that there’s nothing that helps you learn concepts more, and faster, than trying, failing, and trying again. If something feels overwhelming initially, try to continuously split it into smaller and smaller tasks, until it seems manageable.
The main way in which I learned Angular was developing applications for things I was passionate about. At the start, everything was unknown, and it all felt overwhelming. However, bit by bit, I took a section of the app (e.g. sign in functionality) and broke it into bitesize, manageable chunks, looking into anything I didn’t understand.
Doing this, searching along the way, you’ll realise you naturally run into so many of the useful tools and features of Angular, as well as improving your general software engineering skills. That way, if you decide to more formally take a course, the already setting foundation will be able to steadily relax into place, as opposed to attempting to both lay and set at the same time.
For a starting point for Angular specifically, I would recommend the tutorials on the official website: https://angular.dev/tutorials
For complete beginners to web development, https://web.dev/learn is an incredible resource. It walks through everything from learning how to add plain-text to an HTML page, to service workers, caching, and serving.
A great website for letting you see what you don’t know, is https://roadmap.sh/. I used the front-end, back-end, and full-stack tracks to flesh out my knowledge gaps and think it’s indispensable for anyone trying to get into software. I think some of the descriptions when clicking on nodes can be slightly inconsistent in quality, however the linked resources are varied, reputable, and useful.
Lastly, if you want a solid base understanding of computer science, I can’t recommend Harvard’s CS50 course enough. It’s introductory, free, and high quality: https://www.edx.org/learn/computer-science/harvard-university-cs50-s-introduction-to-computer-science