BrandGhost

3 Things That CATAPULTED My Software Engineering Journey

Reflecting on our journeys isn't always about learning from failures... Sometimes things actually worked REALLY well! In this video, I wanted to share three things that I think worked really well for me in my software engineering journey. Remember: everyone will have their own journey. Just because these worked well for me doesn't mean that you need to mirror them.
View Transcript
hi I'm Nick centino and I'm a principal software engineering manager at Microsoft in this video I wanted to talk to you about three things that I'm very thankful for doing starting out as a junior software engineer on a previous video which I'll link up here if you haven't seen it already I talked about four different things that I would do differently so I wanted to counterbalance it with three things that I thought worked out really well that sounds interesting just a reminder to subscribe to the channel and check out that pin comment for my courses on dome train starting out with number one it's the advice I give to people all of the time still because I seen this work really well for myself and that is building projects for me this meant that I was building just fun things on the side I wasn't trying to make a business out of what I was doing I wasn't trying to make the next Facebook or the next whatever I was just trying to have fun with the stuff that I was building I have one of my pet projects which is a little role playing game it kind of looks like Pokemon I've been building it over the past 20 years or so on and off it's one of the first things that I started building now I've Rewritten it probably a million times it's never going to be finished but it was something that I could always go back to and try programming patterns out I could apply different design patterns I could try working with a different database technology I could Port it between different game engines I could practice refactoring I essentially had this infinite playground that I could just keep building stuff in and for me that was really enjoyable but that's the other thing that I wanted to mention because if you're trying to hear this as advice for yourself I understand that not everyone number one has time to to do this and number two not everyone knows what they want to go build or can go find something that they're align with on the first part if you find that you don't have time I do recommend just trying to look at your priorities and seeing if there is something that you can trade out I do understand that some people are literally maxed out on all of the important stuff in their life you might have a job you might have a family you might have kids you might have school on top of that you might be working multiple jobs and trying to get into programming right I get it but if you are someone who has other IES and stuff on the side time that you're dedicating to other things you might be able to see if you can start carving back some of that just to be able to dedicate a little bit of extra time to building things now if you're not sure what to build there are plenty of options and one of the best things about llms these days is you can ask them questions about this kind of stuff if you have no idea where to start you can just ask chat GPT for some ideas but what I would recommend is trying to find something that you're interested in what I mean by that is like Hobbies or you know things that you like do outside of programming if you like listening to music or watching a TV show or playing certain video games why don't you go build something that's related to that it might feel a lot more interesting because I find if you're not enjoying the process what you're trying to build when you start hitting roadblocks you're going to be sitting there going I don't even like doing this anyway why am I making myself do it but if instead if you find it's kind of interesting at least a line to one of your hobbies it might feel that you're excited about solving the problem that's what I would recommend my experience building projects on the side meant that I was able to have a lot more time just actually practicing building software that meant when it came time for even my first internship I was able to go demonstrate that video game I mentioned I got to bring it for showand tell to the interview and show the founder of the company what I had built there were plenty of things along the way that I could go experiment with building a mobile apps and different programming languages and all sorts of things that gave me different skills that I could go bring back to the work Force because I wasn't applying them every day on the job but when certain situations came up I did have some of that experience just from playing around on the side this is going to bring me to my second point that I think worked out really well for me and it's going to sound counterintuitive I get it but hear me out and that's going to be Reinventing the wheel this is advice you hear the opposite of all the time right don't reinvent the wheel if something's already there don't waste time on it you want to be building on top of it if there's a database that exists that's very performant why would you go try to go write your own you can go leverage the one that teams of people have put years of effort into it's going to work really well if you go start your own it's probably not going to be as good for a very long period of time if ever so why is this advice and why did this work well for me well I think it's special advice and I think it's contextual so hear me out on it I think it's actually beneficial to try building some of these things on your own from a learning perspective and I don't mean trying to do it to go put it into production but I do mean if you're building stuff on the side if you're like I wonder how a database Works try building one for me it was about networking so there were all of these different libraries that you could use for communicating between two different programs and I said I want to try building my own thing so I would work with sockets and then from there I would build messaging libraries over top of them so kind of like RPC calls or other messaging mechanisms but I spent a lot of time doing that because it was interesting and I got to learn a ton I even Built My Own UI Frameworks kind of like Wind forms but in some game engines and did I have to do that absolutely not there were plenty of different libraries I could have used already but it was a really cool experience to go see how that would work if I was trying to ship this type of stuff to production to end users people were paying me for it I probably would have approached things differently but because I was building on the side and I had this playground of sorts that meant that I could go trying to learn different things that I was interested in yes Reinventing the wheel can be really beneficial you can learn tons of different stuff and by doing so you'll probably have a much greater appreciation for the work that goes into some of the libraries and technology that you're using maybe on the surface it seems really simple and once you start trying to build it out yourself you'll say holy crap there's lots of stuff I didn't think about so I do recommend trying it out from a learning perspective finally something that I cannot recommend enough is internships and yes I get it depending on your journey you might say well Nick I don't have the opportunity for that but this advice is especially important for people just getting started and they're not sure which direction to go in so if you're thinking about a self- toop path of boot camp College University for me something that worked really well was going to University and picking a program that had internships now you're able to do this without going to University it's totally possible but for me that was of the elements about the program I picked that I really liked if you have the opportunity in whatever path you take to be able to do some type of work before you're fully employed maybe it's volunteer work maybe it looks like something else but if you have opportunities that look like internships where you can be learning from other people and kind of doing what looks like real work I think that it is such a game changer and I would not change any of that in my career Journey for anything for me this meant that I had two two full years of work experience by the time I graduated that was six different internships and I could have done them at six different companies to go look at all sorts of different things I did go back to a couple multiple times and that meant that I was able to stick around a little bit longer and see some products and other things evolve in the time that I was there but having two full years of work experience meant that by the time I graduated and could go apply not only did I have a little bit more on my resume that I could add but it also meant that I had truly had hands-on experience building software at companies with teams but again if you're not sold on going to college or university or you're in a program that does not have something like internships or a co-op program like I said there are lots of opportunities and even just being able to volunteer and making sure that you can try to build software with other people it could even just be a project where you go collaborate on the side and try to put some stuff together I think this kind of thing where you're working with other people and you have close closer to a real working Dynamic going on is incredibly beneficial while this kind of sounds like it's related to building projects on the side the point that I want to call out about this and what makes it more real is that you're going to be potentially working in teams right and you're going to have different constraints that you might not otherwise building something on the side just for fun you might not really have a deadline you might not have customers or real users to worry about but in these other scenarios you have some of these more realistic constraints starting to get imposed and when that happens s you have to get a lot more creative with how you're building software so I think that it's an awesome opportunity and like I said I wouldn't change it for anything else in my career Journey those are three things that I thought worked out really well for me starting out as a junior software engineer that I wanted to offer up to you as advice if you're just getting started now if you want to hear about how I progress through my career getting to a principal level software engineering manager you can check out this video next thanks and I'll see you later

Frequently Asked Questions

What are some project ideas I can build to improve my software engineering skills?

I recommend starting with something related to your hobbies or interests. For example, if you enjoy music, consider building a music-related app or tool. If you like video games, you could create a simple game. The key is to find something that excites you, as this will make the process more enjoyable and motivate you to push through any challenges.

Why is reinventing the wheel sometimes beneficial in learning software engineering?

Reinventing the wheel can be a great learning experience because it allows you to understand the underlying principles and complexities of the technology you're working with. For instance, when I built my own networking libraries, I gained a deeper appreciation for existing libraries and learned a lot about how they function. It's not about putting it into production, but rather about the learning journey.

How important are internships for a career in software engineering?

Internships are incredibly important, especially for those just starting out. They provide hands-on experience and the opportunity to work with real teams on real projects. In my case, I had two years of work experience from six different internships by the time I graduated, which made a significant difference in my job applications. If you can find any opportunity to gain experience, whether through internships or volunteer work, I highly recommend it.

These FAQs were generated by AI from the video transcript.
An error has occurred. This application may no longer respond until reloaded. Reload