Detailed Notes
Our latest podcast episode explores a key developer's dilemma: Should they go deep or wide in technical mastery? Hosts Mike and Rob dissect this decision, focusing primarily on platforms and technology.
Embracing Breadth: The Power of Versatility
First, Rob advocates for a broad approach. He emphasizes being well-versed across technologies, languages, and frameworks. Create a technical roadmap and regularly explore new tech. Stay adaptable and informed with wide skills. This enhances career prospects and understanding of tools' strengths/weaknesses.
Going Deep: Delving into Technical Mastery
Alternatively, Mike advocates deep specialization in one area. He promotes technical mastery and specialization in that domain. Broad knowledge has benefits, but going deep excels. However, continued learning and adaptation within specialization avoid stagnation, which remains relevant in rapidly evolving fields.
Practical Application: Building Projects for Technical Mastery
Next, the hosts discuss the importance of using practical applications. They recommend building projects/apps to solidify learning and showcase skills. Repositories like GitHub are valuable for storing and revisiting projects. Utilizing these tools allows developers to learn and grow over time.
Finding Balance: Navigating the Depth vs. Breadth Conundrum
In addition, the hosts emphasize the need for balance. Listeners are encouraged to find their own path and combine depth and breadth in their technical expertise. They suggest investing time and effort into learning and experimentation through side projects or professional development opportunities.
Forge Your Path to Technical Mastery
Finally, the hosts remind listeners that technology is constantly evolving. Therefore, the key to success requires adaptability and continuous learning. Whether specializing or generalizing (deep vs. wide), developers must stay curious and flexible. They must proactively pursue knowledge and technical mastery.
Feedback and questions are welcome at [email protected]. We invite listeners to connect with Develpreneur on YouTube for more insights and discussions.
Additional Resources * Software Development Challenges and How To Navigate Them (https://develpreneur.com/software-development-challenges-and-how-to-navigate-them/) * Leverage Your Unique Skills – Interview With Tyler Foley (https://develpreneur.com/leverage-your-unique-skills-interview-with-tyler-foley/) * Run Towards Success Not Away From Challenges (https://develpreneur.com/run-towards-success-not-away-from-challenges/) * Learning From Challenges – A Season With a Positive Focus (https://develpreneur.com/learning-from-challenges-a-season-with-a-positive-focus/)
Transcript Text
[Music] there we go recording and progress all right whether we like it or not we're doing this now uh hello everybody and we are late to the game today so we will see how this goes um that's basically why I just decided to hit record so uh last time we actually had a couple of different topics and let me flip over uh because one or two of them was actually really good let's see good okay so we did the master of many things exper which is one we could go to about anywhere uh we also talked about being biased towards did we get into that I know we talked a little bit did we get into being biased on a language framework no because you went the other direction and then from that we kind of had another idea with that to go you know master of One Versus many from like a skills perspective and then the other and that kind of ties into that that other one you know um being biased towards a particular technology so let's do that because that is I think it's actually literally a chapter in the the developing or book it's about deep versus wide um and sort of how to do that and so we will focus on that today we'll start into that conversation and let's see where it goes um so we just going to dive in and see how this one works that's the best way to do a podcast anyways we don't want to do anything like too much thinking well hello and welcome back we are continuing our season of stuff in development or podcast and we are just sort of working through challenges and things we see during the week and then also some of it is uh related to just our normal developer type challenges but also our business related challenges this episode we're going to sort of continue a theme we've had recently and it's about uh Direction essentially we're g to talk about deep versus wide and we're go specifically talking about platforms and from a technology point of view now we're going to talk developers speak but if you are a a specialist a technical Specialist of any kind which includes you know testing it includes uh even project management tool usage even if you're into like a specific CRM or something like this it really is it has gotten to a point that regardless of what you do there's probably at least two or three tools out there to get it done and we talk about I want to talk a little bit about the differences the the pros and cons of being deep in an area versus wide in an area and Mayor Michael on the hot seats and have him pick one while I'm going to pick the other I'll pick first of course but first let's introduce him I am Rob Broadhead and I am one of the founders of develop andur also founder of RB Consulting and on the other side of the Zoom call is Michael go ahead and introduce yourself hey everyone my name is Michael milash also co-founder of devel preneur and founder of Envision q and now he's starting to sweat a little bit because I said I'm going to put him on the hot seat I want to talk and hopefully he wants to talk the other side I want to talk about wide I want to talk about being Broad in your technical sense because this is this is near and dear to my heart and it has served me very well uh and when I started out and this is you know Shameless plug if you go check out the develop and or book I talk about early on developing as a developer becoming a better developer in those first you know one two five years and even probably even to that five to 10 year range one of the things that worked really well for me that I highly recommend is set yourself up with a a technical road map and we've we've talked about a a skills and career road map also multiple times on developing our site so you can see some some blogs and podcasts about that what that is if you're not familiar with it I'm going to skip that right now and sort of talk about though how we build it out and one of the things is very valuable is in your road map doing a regular uh we'll call it new technology because technology is come out like every time you turn around there's something new out there if you flip back a couple years ago then you can look just in the last two or three years like chat GPT has become very big it around but it's become very big Swift has continued to become very big and just mobile development and specific mobile development platforms uh also you can look at things like the new versions of java the new versions of python and Jango and react and the new libraries that are available there's a lot of stuff out there to learn so if you want to be especially early on in your care like the first half of your career first five 10 probably 15 years it's going to benefit you I think to to always have an idea of what's out there and that doesn't mean that you aren't a specialist at some level you may especially early on you're probably going to know or be more comfortable in one language environment or framework than another for example maybe you came out of school and you learned a lot of net so you're comfortable in the net world but that doesn't mean you shouldn't have an idea of let's say the python world or the PHP world or the Java world and it's this where it's I think very useful to know that your your tool whatever it happens to be has its strengths and its weaknesses and if somebody asks you to compare or contrast that to another platform or another solution you can at least talk to it and not just say well that's just crap because my solution is the only one that matters because that will immediately lose you respect and you know any value for your opinion if you can instead say hey I've built a lot of projects in let's say CP I've also built a few projects in Java and here's where I found that the two you know the strengths of each or just personally you can share this is why I choose in this case CP over java and it's because of a b and c and the the more you have broadened out that skill set one the more you're going to see you're going be comfortable when new things come into your language because they're constantly stealing from each other and sort of building on things that are have been done well in another language or another environment but also you're just going to sort of see the a little bit of the writing on the wall so if you're in something that is dying you can see that there's somewhere to jump off to and the more that you've spread that out the easier it's going to be whatever the new technology is to adopt that so those are my thoughts let's see do you wna do you w to piggyback on that or do you want to focus a little bit more on the the deep and and narrow approach uh let me speak a little in addition to that so one of the things you didn't really touch on you alluded to with your comparisons there is one of the things with the different Technologies is you'll especially because there's degrees out there and things you can do you know there's talk about computer science there's Frameworks what you tend to find with a lot of different things in software regardless of the language is there's a lot of commonality between the syntax so especially when you're just starting out figuring out how to build a kitchen sync or Hello World app in multiple languages so you can compare the two uh applications really helps it really keeps you wide because you can go oh okay here's this in Python okay how do I do this in Java and you literally build what I call a kitchen sync app it's basically a Hello World app with a bunch of little features and uh utilities that are common across multiple languages that you could that you need for this application or you need for this application regardless of the language you kind of need these features and functionalities the other thing you didn't really touch on because uh you were kind of keeping this at the technology level is also the platforms don't be afraid to learn Linux Mac uh Windows uh you know Unix if you have the capability go check it out you know thanks to cloud computing thanks to dockor and containers there's really no reason for you not to just go download a virtual machine throw it up up in Virtual box or some other player and just play around in a different operating system see how the languages work in the different operating systems you know just about every single platform out there has a text editor and a compiler so you should be able to write code anywhere so those that's one thing I just kind of want to piggy back on with that I do want to like step back a little bit and say if you want to learn Windows be afraid be very afraid um but other than that that is is I think it is it really is critical especially early on to spend a little time in the three big boys of of Linux Unix type of environment Mac and windows particularly if you're Windows person is understand the Unix command line I think that's although there's gooey tools everywhere there's always Windows things out there but I think being able to like you know some people are going to freak out but being being able to use VI or emac or something an editor that is a simple editor and also having editors that are crossplatform like a a was it um turbo editor I forget the there a couple of these that are out there that are they're crossplatform or the IDS now as you can you know Visual Studio code something that you can get into where you can work with files you can make your edits you can do your changes and I do think that the hello work world is you know is nice but I think the whole idea of the kitchen sync app is underrated uh first came across it with a tool for uh for mobile development several years ago where it was and it's honestly the they called it that before if you go to the Java trails that I think are still out there the Java tutorial stuff particularly if you want to get into for example the UI side of stuff they've got all the controls they've got all the controls they've got events they've got examp they've got all of these ways for you to just go do something simple and focused so it's like do you want to create a a drop- down list that's a multi- select here's do it being able to do things like that and translate them from one language to another is a great way to learn that and to go from exposure like hey I've built a hello world or I've built a couple of little things in a in a language to I can do that like I have built an application which is what I've always recommended on the the career road map is get in there and get used to it maybe one year or you know one six-month period or one quarter and then the next time around turn around and build an application in that usually the best ones to build are utilities that help us out whether you are a you know you want to keep up with like your Video Collection whether you've got uh been very valuable to me has been code manipulators over the years code generators of varying types and sizes and and usages because one I use it two it forces me to get in that language a little bit and usually while I have enough control because it's my application so I can you know I can tweak stuff a little bit and if I'm going to get into an area where I just don't that about this language right now I can sometimes punt but also it forces me to get into something where I have a I get a payoff at the end of it it's not just that I learn this language but now I have this cool little app that I can use and show off if I'm trying to get a project I may say hey here's a project here's something I built that looks like that or that proves that I can work in that technology and I think that just while yes you know if you're if you got 10 years of experience and all 10 years are very are very deep in let's sayet then you're probably more likely to get a senior net job but you want to watch out for the do you have 10 years of experience or do you have one year of experience 10 times and making sure that you are even within your chosen language plat environment that you are pushing yourself that you're growing that you understand you know from version to version that maybe you're that you're staying up to date this goes back to something we talked about not too long ago actually talk about Michael I actually was just venting and whining because somebody had built an application and they hadn't updated it in six or seven years so it was awesome if you were running on 2015 technology but when when you try to bring it up to 2024 which you have to do if you're going to like kick it out and you know turn it out as a commercial application suddenly it breaks and it's a struggle to find all the right libraries and do all of the upgrades so make sure regardless of which way you're going that you're also staying current along the way that you're not just like you know like a teacher that's got tenure that says hey I don't have to learn this anymore because guess what we're always going to have to learn it because our stuff changes all all the time additions on that yeah I I liked how you mentioned that so the other thing along that and we've talked about this in the past is we continue to either go deep or go wide the idea of the kitchen sink app or even as you're building or learning this is where starting out with those uh Source repositories pit bucket GitHub start building those now those are good for your resumes those are good resources uh I can't even tell you that how many projects I have now I think I'm over 75 projects in bit bucket that I've done over the last 20 some years and I constantly go to it from time to time it's like oh what was this what did I do here uh and you go look at yeah it's dated but you have the uh algorithm or you have the framework idea for what it is and you can reuse it later so that's one way where you can kind of go wide early on and come back to it later and be like oh yeah I did this back here and now you can use it somewhere else to go a little bit deeper into a technology or learning it now one thing that me and Rob Early on when we first met a lot of what we were doing we were constantly having to teach our stuff new stuff um you know spring Rue was out at that time now R is not here anymore we have spring flow Technologies come and go languages come and go sometimes they evolve to the point where you need to be diverse you need to wide in an understanding of technology in order for you to go deep into some of these uh areas especially with mobile development and web development thoughts on that Rob yeah and I really particularly now with the mobile development web development stuff is when you get into the world of apis is that there are some languages that like if you use any of the documentation tools that are out there you know Swag or anything like that you can see in a lot of cases and especially if you do like rley and some of these there are code examples to utilize the API or if you use like Postman it'll generate stuff for you now some of these like Postman or even selenium you can generate code it's so many different languages if you don't know one of then you're probably not a developer but if you get into um more like niche of apis you'll find situations where they only have one or two languages that they've got examples in and so if those don't happen to be your language it's very helpful to know what those languages are now they're typically going to be there's there's sort of some standards so you're probably going to see um you know usually curl is out there so you can at least get a curl example um and then between like a like a a Java JavaScript python PHP probably one of those is going to have it um I haven't seen as many but I also live in a different world development wise but I haven't seen as many uh net C but if it's a you know if it's a bigger uh solution or if it is a a Windows Microsoft shop then obviously they're more likely to have those kind of languages but if you're dealing with an API that's mostly Windows stuff and you only know Java and they got net Solutions and it's it may not translate for you it should because really not going to be that much different but it's one of those the more you know that the more you have had exposure that language elsewhere the more likely able to just dive in and go oh this is this example I can convert it over to my language and I'm off and running and that actually even works just for uh if you're doing like chat GP AI Google or anything like that where you're finding existing Solutions if you see something that's in a different language and you can do that translation then that's going to help you immensely and really expand your your your pool of examples that you can work with thoughts on that one yeah it kind of made me think of the whole rest versus soap framework Anthology because over the years remember you know soap was real heavy early on now everything's kind of gone rest with apis and then even with in that you have your different languages that are even better at it it's like you know Python's really quick behind the scenes Java has its complexities which is good for more complex more secure systems it's having an like a wide understanding of the different Technologies you can walk in and go oh you need an API forx well what kind of systems do you have and then it's like oh python or oh Java you don't have to stick with what they necessarily have now if they're a pre-built shop and they've got a legacy system or something sure you may have to walk in with a little deeper understanding of that language but having a wide understanding of like breast and soap and knowing where what situations to use these and what languages are proficient really helps you kind of I guess be diverse in finding those particular jobs or contracts out there yeah I think it's just one of those that the more you it goes back to the old thing is that you know if you if all you've got is a hammer then everything is and I've seen many applications that were built with that kind of a mentality and so if you can get a little wider especially if you can like have your little side hustle projects be something that's wide while your day job is taking you deeper then you get the best of both worlds so it doesn't have to be you know one or the other it can be both you can go deep and go wide it's just take up time so this is where really if you're going to become a better developer one of the things you have to do is you're going to have to invest time is you're going to have to spend some time if you're working 40 hours a week and that's it or or less you're probably not going to get just going to take too long but now if you're you know spending a little extra time and you throw that extra lunch break and you're you're playing around with a new language building a new app the next thing you know you're going to have a lot of time spent in that technology and now you're going to be comfortable and be your your side hustle uh final thoughts yeah I'd like to add one thing so one of the things as you're learning like Rob said if you're you have a full-time job and you're you know doing a side hustle or just trying to learn new things one of the things from years ago when I started out you know we basically didn't have too many languages to choose from we had Cobalt we had um C C++ and early on with Java now we have so many different Technologies so many different languages out there it can be overwhelming but the best part is if you are proficient in at least one language you know enough to get started you can take another language and basically teach yourself what you know in the current language and then you continue to grow you see what else is out there don't be discouraged but take the baby steps like if you know Java pick up C it's very similar try to start writing some basic applications similar to Java and C if you're doing PHP python same kind of things so don't limit yourself uh but challenge yourself you know go a little bit outside of your comfort zone but if you're scared start small and the easiest and I'll just wrap this one up with with a thought on that is if you know a language and you're comfortable with a solution in that language or in that environment then you can always Google how X so I've had a lot of times where it's like how do I use um is there a log for J which is a Java thing in python or is there um what how do what is the equivalent to J in C I mean these are these are queries that I've done and some of them many many many many years ago and it allowed me to go see that oh there's this thing that is very similar and now you you can translate that and this even goes for stuff like I use it all the time where it's like how do I do a string replace in my SQL in Python in you name it it's say how I forget how to do it or and it's even languages I know because I forget if I don't have one in it's easier to just Google it or chat it that's the signature for that whether you are currently broad or deep I think it's in both in any instance it's going to be useful to to sort of look at your career road map and say where can I be more Broad and where do I want to get a little deeper find the thing that you really enjoy doing and probably you're going to have one or two languages that just really fit your style now they may go away or they may change over years like for myself when I first saw Jaa I fell in love with it because it was not C++ but also it had a lot of cool stuff and so I did it for many many years and then as we got into other development stuff I've had had periods where I like I really liked what PHP did for a little bit for what I was doing I like Python and Jango right now for what I'm doing and it's just sort of you know you're probably going to see that Evolution as well because there's going to be stuff five years from now that don't even exist now and you're going say wow I really enjoy doing that even if it's like tedious stuff like I enjoy CSS sometimes and figur out what you can do with it it's just tedious to do so what's not tedious hopefully is listening to this podcast and then and this episode have hopefully has not been I know that may be a bad segue but hey it is what it is we will be back uh if it's not too tedious you we will be back we will come back with our next episode we're going to dive right into some more of these these topics as always shoot us an email at info developer.com if you have any questions suggestions comments lack of tedium jokes you name it we'll take it into take it into account and probably throw it out on an episode somewhere and uh we just going to come back we continue cranking through this season and we'll figure out the next one is but as always go out there and have yourself a great day a great week and we will talk to you next time now for the rest of you part of the Reon we hit record is because we like we usually do two or three episodes at a time little behind the scenes kind of thing here in between episodes uh we do the we do one sitting and we try to we slice it into a couple of you know two or three episodes usually of the uh the Youtube side and also the audio side now in these kinds of conversations sometimes the flow is such that there's really not a good like snip spot and since Michael is now our like primary senior editor and stuff he's not as um abrasive as I could be when I would do my cuts because sometimes I could cut stuff and it just be like right in the middle of a thought and it's like as you guys may know if you listen to some of the interviews in the past there were times that were like quite the Cliffhanger and others were perfect it was like just worked out perfect other times I had to get one of us in midth thought and so if you've seen that it's my fault it's not his fault I will give you that much and we're going to try to sh you know shift a little bit this time so that we will wrap up an episod of the video side and then we will dive into what we're going to deal with on the other side in the idea of the vein of bonus content was there any any like last minute thoughts that we missed that you wanted to throw out there so one thing I I kind of found was interesting because you kept talking about having them look at their Road mapap you know their career road map their Tech road map for me over the years it you know it started out you know I'm old you know we started out learning this stuff before the internet started right bbs's uh old mainframe computers and nowadays you don't even think about that right I mean Doss is just now coming back as open source it's like wow that was what 20 30 years ago uh I don't remember when I other than the command line which is technically terminal these days but looking at the road map when I first started out it's like yeah I want to be a software developer then it's like oh here's the internet oh wow this is so cool I want to learn this so one of the things to keep you that I find interesting because I'm constantly looking at things that are out there but it's as you're looking at this road map follow what you're interested in what excites you for me it's all things geek you know it's like oh look AI cool let's just go spend hours learning that when I should be sleeping but any other thoughts or suggestions for that to kind of help them put together this road map I I think that is the that is key that should be your why like why am I doing this why am I going through all of this you know this headache to learn stuff and stay current and it is something that the guys that work for me whenever we do reviews one of the things we start with is what did you like about what we did we do like six month reviews like what have you what do you like about what you've done in the last six months what are some things that you would like to learn in the next six months and while we can't always you can't always get what you want but you can at least make some adjustments on that and so those are things where I'll say oh yeah we yeah we had these things cool those those things you like we've got some of that in projects coming up or these things you want to learn we've got those things for your if you're doing and you probably are doing some sort of like little side hustle stuff or things like look for those to be where you're gonna you're going to go where you like stuff so if if you want to do uh web front ends then go look for projects that do web front end you may even you know for that because you want to do it anyways throw it out there to a discount say you know what I'm just going to do it I it's and you can even sell it as that and say hey I'm a I'm a solid developer this is something that I really enjoy I would like to do this project and I've had conversation projects I've won because I've said I love your business or how this is going to work or there's something about this that I really enjoy and that translates because you know if you're going to hire somebody you usually want to hire somebody that loves their work loves what they do that's going to put that extra effort in without thinking about hey is this you know am I getting paid enough or worse as a person that's like I'm not getting paid enough to do this then you end up you know stuck so I think that's a an excellent uh happy thought to end this one on so we have like a nice little you know snip and and whatever your road map is make sure that you're thinking about what do you not what other people may want you to do although that may be part of what drives you but really it's going to be you want to do what do you like doing and let's build out a road map that that works towards that because the end of the day the end of your life you want to have done stuff that was fun you don't want to sit there and go well I won a bunch of projects or I made a lot of money but I hated every second of it that's like not where you want to be you want to be like us out there having a good time talking on a podcast or out on YouTube that being said we're gonna actually wrap this one up and then we will step into our next episode [Music]
Transcript Segments
[Music]
there we go recording and progress all
right whether we like it or not we're
doing this now uh hello everybody and we
are late to the game today so we will
see how this
goes um that's basically why I just
decided to hit
record so uh last time we actually had a
couple of different topics and let me
flip
over
uh because one or two of them was
actually
really good let's see good okay so we
did the master of many things exper
which is one we could go to about
anywhere uh we also talked about being
biased towards did we get into that I
know we talked a little bit did we get
into being biased on a language
framework no because you went the other
direction and then from that we kind of
had
another idea with that to go you know
master of One Versus many from like a
skills perspective
and then the other and that kind of ties
into that that other one you know um
being biased towards a particular
technology so let's do that because that
is I think it's actually literally a
chapter in the the developing or book
it's about deep versus wide um and sort
of how to do that and so we will focus
on that today we'll start into that
conversation and let's see where it goes
um so we just going to dive in and see
how this one works that's the best way
to do a podcast anyways we don't want to
do anything like too much thinking well
hello and welcome back we are continuing
our season of stuff in development or
podcast and we are just sort of working
through challenges and things we see
during the week and then also some of it
is uh related to just our normal
developer type challenges but also our
business related challenges this episode
we're going to sort of continue a theme
we've had recently and it's about uh
Direction essentially we're g to talk
about deep versus wide and we're go
specifically talking
about platforms and from a technology
point of view now we're going to talk
developers speak but if you are a a
specialist a technical Specialist of any
kind which includes you know testing it
includes uh even project management tool
usage even if you're into like a
specific CRM or something like this it
really is it has gotten to a point that
regardless of what you do there's
probably at least two or three tools out
there to get it done and we talk about I
want to talk a little bit about the
differences the the pros and cons of
being deep in an area versus wide in an
area and Mayor Michael on the hot seats
and have him pick one while I'm going to
pick the other I'll pick first of course
but first let's introduce him I am Rob
Broadhead and I am one of the founders
of develop andur also founder of RB
Consulting and on the other side of the
Zoom call is Michael go ahead and
introduce yourself hey everyone my name
is Michael milash also co-founder of
devel preneur and founder of Envision
q and now he's starting to sweat a
little bit because I said I'm going to
put him on the hot seat I want to talk
and hopefully he wants to talk the other
side I want to talk about wide I want to
talk about being Broad in your technical
sense because this is this is near and
dear to my heart and it has served me
very well uh and when I started out and
this is you know Shameless plug if you
go check out the develop and or book I
talk about early on developing as a
developer becoming a better developer in
those first you know one two five years
and even probably even to that five to
10 year range one of the things that
worked really well for me that I highly
recommend is set yourself up with a a
technical road map and we've we've
talked about a a skills and career road
map also multiple times on developing
our site so you can see some some blogs
and podcasts about that what that is if
you're not familiar with it I'm going to
skip that right now and sort of talk
about though how we build it out and one
of the things is very valuable is in
your road map doing a regular uh we'll
call it new technology because
technology is come out like every time
you turn around there's something new
out there if you flip back a couple
years ago then you can look just in the
last two or three years like chat GPT
has become very big it around but it's
become very big Swift has continued to
become very big and just mobile
development and specific mobile
development platforms uh also you can
look
at things like the new versions of java
the new versions of python and Jango and
react and the new libraries that are
available there's a lot of stuff out
there to learn so if you want to be
especially early on in your care like
the first half of your career first five
10 probably 15 years it's going to
benefit you I think to to always have an
idea of what's out there and that
doesn't mean that you aren't a
specialist at some level you may
especially early on you're probably
going to know or be more comfortable in
one language environment or framework
than another for example maybe you came
out of school and you learned a lot of
net so you're comfortable in the net
world but that doesn't mean you
shouldn't have an idea of let's say the
python world or the PHP world or the
Java
world and it's this where it's I think
very useful to know that your your tool
whatever it happens to be has its
strengths and its weaknesses and if
somebody asks you to compare or contrast
that to another platform or another
solution you can at least talk to it and
not just say well that's just crap
because my solution is the only one that
matters because that will immediately
lose you respect and you know any value
for your opinion if you can instead say
hey I've built a lot of projects in
let's say CP I've also built a few
projects in Java and here's where I
found that the two you know the
strengths of each or just personally you
can share this is why I choose in this
case CP over java and it's because of a
b and
c and the the more you have broadened
out that skill set one the more you're
going to see you're going be comfortable
when new things come into your language
because they're constantly stealing from
each other and sort of building on
things that are
have been done well in another language
or another environment but also you're
just going to sort of see the a little
bit of the writing on the wall so if
you're in something that is dying you
can see that there's somewhere to jump
off to and the more that you've spread
that out the easier it's going to be
whatever the new technology is to adopt
that so those are my thoughts let's see
do you wna do you w to piggyback on that
or do you want to focus a little bit
more on the the deep and and narrow
approach uh let me speak a little in
addition to that so one of the things
you didn't really touch on you alluded
to with your comparisons there is one of
the things with the different
Technologies is you'll especially
because there's degrees out there and
things you can do you know there's talk
about computer science there's
Frameworks what you tend to find with a
lot of different things in software
regardless of the language is there's a
lot of commonality between the syntax so
especially when you're just starting out
figuring out how to build a kitchen sync
or Hello World app in multiple languages
so you can compare the two uh
applications really helps it really
keeps you wide because you can go oh
okay here's this in Python okay how do I
do this in Java and you literally build
what I call a kitchen sync app it's
basically a Hello World app with a bunch
of little features and uh utilities that
are common across multiple languages
that you could that you need for this
application or you need for this
application regardless of the language
you kind of need these features and
functionalities the other thing you
didn't really touch on because uh you
were kind of keeping this at the
technology level is also the platforms
don't be afraid to learn Linux Mac uh
Windows uh you know Unix if you have the
capability go check it out you know
thanks to cloud computing thanks to
dockor and containers there's really no
reason for you not to just go download a
virtual machine throw it up up in
Virtual box or some other player and
just play around in a different
operating system see how the languages
work in the different operating systems
you know just about every single
platform out there has a text editor and
a compiler so you should be able to
write code anywhere so those that's one
thing I just kind of want to piggy back
on with
that I do want to like step back a
little bit and say if you want to learn
Windows be afraid be very afraid um but
other than that that is is I think it is
it really is critical especially early
on to spend a little time in the three
big boys of of Linux Unix type of
environment Mac and windows particularly
if you're Windows person is understand
the Unix command line I think that's
although there's gooey tools everywhere
there's always Windows things out there
but I think being able to like you know
some people are going to freak out but
being being able to use VI or emac or
something an editor that is a simple
editor and also having editors that are
crossplatform like a a was it um turbo
editor I forget the there a couple of
these that are out there that are
they're crossplatform or the IDS now as
you can you know Visual Studio code
something that you can get into where
you can work with files you can make
your edits you can do your changes
and I do think that the hello work world
is you know is nice but I think the
whole idea of the kitchen sync app is
underrated uh first came across it with
a tool for uh for mobile development
several years ago where it was and it's
honestly the they called it that before
if you go to the Java trails that I
think are still out there the Java
tutorial stuff particularly if you want
to get into for example the UI side of
stuff they've got all the controls
they've got all the controls they've got
events they've got examp they've got all
of these ways for you to just go do
something simple and focused so it's
like do you want to create a a drop-
down list that's a multi- select here's
do it being able to do things like that
and translate them from one language to
another is a great way to learn that and
to go from exposure like hey I've built
a hello world or I've built a couple of
little things in a in a language to I
can do that like I have built an
application which is what I've always
recommended on the the career road map
is get in there and get used to it maybe
one year or you know one six-month
period or one quarter and then the next
time around turn around and build an
application in that usually the best
ones to build are utilities that help us
out whether you are a you know you want
to keep up with like your Video
Collection whether you've got uh been
very valuable to me has been code
manipulators over the years code
generators of varying types and sizes
and and
usages because one I use it two it
forces me to get in that language a
little bit and usually while I have
enough control because it's my
application so I can you know I can
tweak stuff a little bit and if I'm
going to get into an area where I just
don't that about this language right now
I can sometimes punt but also it forces
me to get into something where I have a
I get a payoff at the end of it it's not
just that I learn this language but now
I have this cool little app that I can
use and show off if I'm trying to get a
project I may say hey here's a project
here's something I built that looks like
that or that proves that I can work in
that technology and I think that just
while yes you know if you're if you got
10 years of experience and all 10 years
are very are very deep in let's sayet
then you're probably more likely to get
a senior net job but you want to watch
out for the do you have 10 years of
experience or do you have one year of
experience 10 times and making sure that
you are even within your chosen language
plat environment that you are pushing
yourself that you're growing that you
understand you know from version to
version that maybe you're that you're
staying up to date this goes back to
something we talked about not too long
ago actually talk about Michael I
actually was just venting and whining
because somebody had built an
application and they hadn't updated it
in six or seven years so it was awesome
if you were running on 2015 technology
but when when you try to bring it up to
2024 which you have to do if you're
going to like kick it out and you know
turn it out as a commercial
application suddenly it breaks and it's
a struggle to find all the right
libraries and do all of the upgrades so
make sure regardless of which way you're
going that you're also staying current
along the way that you're not just like
you know like a teacher that's got
tenure that says hey I don't have to
learn this anymore because guess what
we're always going to have to learn it
because our stuff changes all all the
time additions on
that yeah I I liked how you mentioned
that so the other thing along that and
we've talked about this in the past is
we continue to either go deep or go wide
the idea of the kitchen sink app or even
as you're building or learning this is
where starting out with those uh Source
repositories pit bucket GitHub start
building those now those are good for
your resumes those are good resources uh
I can't even tell you that how many
projects I have now I think I'm over 75
projects in bit bucket that I've done
over the last 20 some years and I
constantly go to it from time to time
it's like oh what was this what did I do
here uh and you go look at yeah it's
dated but you have the uh algorithm or
you have the framework idea for what it
is and you can reuse it later so that's
one way where you can kind of go wide
early on and come back to it later and
be like oh yeah I did this back here
and now you can use it somewhere else to
go a little bit deeper into a technology
or learning it now one thing that me and
Rob Early on when we first met a lot of
what we were doing we were constantly
having to teach our stuff new stuff um
you know spring Rue was out at that time
now R is not here anymore we have spring
flow Technologies come and go languages
come and
go sometimes they evolve to the point
where you need to be diverse you need to
wide in an understanding of technology
in order for you to go deep into some of
these uh areas especially with mobile
development and web development thoughts
on that Rob yeah and I really
particularly now with the mobile
development web development stuff is
when you get into the world of apis is
that there are some languages that like
if you use any of the documentation
tools that are out there you know Swag
or anything like that you can see in a
lot of cases and especially if you do
like rley and some of these there are
code examples to utilize the API or if
you use like Postman it'll generate
stuff for you now some of these like
Postman or even selenium you can
generate code it's so many different
languages if you don't know one of then
you're probably not a developer but if
you get into um more like
niche of apis you'll find situations
where they only have one or two
languages that they've got examples in
and so if those don't happen to be your
language it's very helpful to know what
those languages are now they're
typically going to be there's there's
sort of some standards so you're
probably going to see um you know
usually curl is out there so you can at
least get a curl example um and then
between like a like a a Java JavaScript
python PHP probably one of those is
going to have it um I haven't seen as
many but I also live in a different
world development wise but I haven't
seen as many uh net C but if it's a you
know if it's a bigger uh solution or if
it is a a Windows Microsoft shop then
obviously they're more likely to have
those kind of languages but if you're
dealing with an API that's mostly
Windows stuff and you only know Java and
they got net Solutions and it's it may
not translate for you it should because
really not going to be that much
different but it's one of those the more
you know that the more you have had
exposure that language elsewhere the
more likely able to just dive in and go
oh this is this example I can convert it
over to my language and I'm off and
running and that actually even works
just for uh if you're doing like chat GP
AI Google or anything like that where
you're finding existing Solutions if you
see something that's in a different
language and you can do that
translation then that's going to help
you immensely and really expand your
your your pool of examples that you can
work with thoughts on that one yeah it
kind of made me think of the whole rest
versus soap framework Anthology because
over the years remember you know soap
was real heavy early on now everything's
kind of gone rest with apis and then
even with in that you have your
different languages that are even better
at it it's like you know Python's really
quick behind the scenes Java has its
complexities which is good for more
complex more secure systems
it's having an like a wide understanding
of the different Technologies you can
walk in and go oh you need an API forx
well what kind of systems do you have
and then it's like oh python or oh Java
you don't have to stick with what they
necessarily have now if they're a
pre-built shop and they've got a legacy
system or something sure you may have to
walk in with a little deeper
understanding of that language but
having a wide understanding of like
breast and soap and knowing where what
situations to use these and what
languages are proficient really helps
you kind of I guess be diverse in
finding those particular jobs or
contracts out
there yeah I think it's just one of
those that the more
you it goes back to the old thing is
that you know if you if all you've got
is a hammer then everything
is and I've seen many applications that
were built with that kind of a mentality
and so if you can get a little wider
especially if you can like have your
little side hustle projects be something
that's wide while your day job is taking
you deeper then you get the best of both
worlds so it doesn't have to be you know
one or the other it can be both you can
go deep and go wide it's just take up
time so this is where really if you're
going to become a better developer one
of the things you have to do is you're
going to have to invest time is you're
going to have to spend some time if
you're working 40 hours a week and
that's it or or less you're probably not
going to get just going to take too long
but now if you're you know spending a
little extra time and you throw that
extra lunch break and you're you're
playing around with a new language
building a new app the next thing you
know you're going to have a lot of time
spent in that technology and now you're
going to be comfortable and be your your
side hustle uh final
thoughts yeah I'd like to add one thing
so one of the things as you're learning
like Rob said if you're you have a
full-time job and you're you know doing
a side hustle or just trying to learn
new things one of the things from years
ago when I started out you know we
basically didn't have too many languages
to choose from we had Cobalt we had um C
C++ and early on with Java now we have
so many different Technologies so many
different languages out there it can be
overwhelming but the best part is if you
are proficient in at least one language
you know enough to get started you can
take another language and basically
teach yourself what you know in the
current language and then you continue
to grow you see what else is out there
don't be discouraged but take the baby
steps like if you know Java pick up C
it's very similar try to start writing
some basic applications similar to Java
and C if you're doing PHP python same
kind of things so don't limit yourself
uh but challenge yourself you know go a
little bit outside of your comfort zone
but if you're scared start small
and the easiest and I'll just wrap this
one up with with a thought on that is if
you know a language and you're
comfortable with a solution in that
language or in that environment then you
can always Google how X so I've had a
lot of times where it's like how do I
use um is there a log for J which is a
Java thing in python or is there um what
how do what is the equivalent to J
in C I mean these are these are queries
that I've done and some of them many
many many many years ago and it allowed
me to go see that oh there's this thing
that is very similar and now you you can
translate that and this even goes for
stuff like I use it all the time where
it's like how do I do a string replace
in my SQL in Python in you name it it's
say how I forget how to do it or and
it's even languages I know because I
forget if I don't have one in
it's easier to just Google it or chat it
that's the signature for
that whether you are currently broad or
deep I think it's in both in any
instance it's going to be useful to to
sort of look at your career road map and
say where can I be more Broad and where
do I want to get a little deeper find
the thing that you really enjoy doing
and probably you're going to have one or
two languages that just really fit your
style now they may go away or they may
change over years like for myself when I
first saw Jaa I fell in love with it
because it was not
C++ but also it had a lot of cool stuff
and so I did it for many many years and
then as we got into other development
stuff I've had had periods where I like
I really liked what PHP did for a little
bit for what I was doing I like Python
and Jango right now for what I'm doing
and it's just sort of you know you're
probably going to see that Evolution as
well because there's going to be stuff
five years from now that don't even
exist now and you're going say wow I
really enjoy doing that even if it's
like tedious stuff like I enjoy CSS
sometimes and figur out what you can do
with it it's just tedious to do so
what's not tedious hopefully is
listening to this podcast and then and
this episode have hopefully has not been
I know that may be a bad segue but
hey it is what it is we will be back uh
if it's not too tedious you we will be
back we will come back with our next
episode we're going to dive right into
some more of these these topics as
always shoot us an email at info
developer.com if you have any questions
suggestions comments lack of tedium
jokes you name it we'll take it into
take it into account and probably throw
it out on an episode
somewhere and uh we just going to come
back we continue cranking through this
season and we'll figure out the next one
is but as always go out there and have
yourself a great day a great week and we
will talk to you next
time now for the rest of you part of the
Reon we hit record is
because we like we usually do two or
three episodes at a time little behind
the scenes kind of thing here in between
episodes uh we do the we do one sitting
and we try to we slice it into a couple
of you know two or three episodes
usually of the uh the Youtube side and
also the audio side now in these kinds
of conversations sometimes the flow is
such that there's really not a good like
snip spot
and since Michael is now our like
primary senior editor and stuff he's not
as um abrasive as I could be when I
would do my cuts because sometimes I
could cut stuff and it just be like
right in the middle of a thought and
it's like as you guys may know if you
listen to some of the interviews in the
past there were times that were like
quite the Cliffhanger and others were
perfect it was like just worked out
perfect other times I had to get one of
us in midth thought and so if you've
seen that
it's my fault it's not his fault I will
give you that much and we're going to
try to sh you know shift a little bit
this time so that we will wrap up an
episod of the video side and then we
will dive into what we're going to deal
with on the other side in the idea of
the vein of bonus content was there any
any like last minute thoughts that we
missed that you wanted to throw out
there so one thing I I kind of found was
interesting because you kept talking
about
having them look at their Road mapap you
know their career road map their Tech
road
map for me over the years it you know it
started out you
know I'm old you know we started out
learning this stuff before the internet
started right bbs's uh old mainframe
computers and nowadays you don't even
think about that right I mean Doss is
just now coming back as open source it's
like wow that was what 20 30 years ago
uh I don't remember when I other than
the command line which is technically
terminal these days but looking at the
road map when I first started out it's
like yeah I want to be a software
developer then it's like oh here's the
internet oh wow this is so cool I want
to learn this so one of the things to
keep you that I find interesting because
I'm constantly looking at things that
are out there but it's as you're looking
at this road
map follow what you're interested in
what excites you for me it's all things
geek you know it's like oh look AI cool
let's just go spend hours learning that
when I should be sleeping
but any other thoughts or suggestions
for that to kind of help them put
together this road map I I think that is
the that is key that should be your why
like why am I doing this why am I going
through all of this you know this
headache to learn stuff and stay current
and it is something that the guys that
work for me whenever we do reviews one
of the things we start with is what did
you like about what we did we do like
six month reviews like what have you
what do you like about what you've done
in the last six months what are some
things that you would like to learn in
the next six months and while we can't
always you can't always get what you
want but you can at least make some
adjustments on that and so those are
things where I'll say oh yeah we yeah we
had these things cool those those things
you like we've got some of that in
projects coming up or these things you
want to learn we've got those things for
your if you're doing and you probably
are doing some sort of like little side
hustle stuff or things like look for
those to be where you're gonna you're
going to go where you like stuff so if
if you want to do uh web front ends then
go look for projects that do web front
end you may even you know for that
because you want to do it anyways throw
it out there to a discount say you know
what I'm just going to do it I it's and
you can even sell it as that and say hey
I'm a I'm a solid
developer this is something that I
really enjoy I would like to do this
project and I've had conversation
projects I've won because I've said I
love your business or how this is going
to work or there's something about this
that I really enjoy and that translates
because you know if you're going to hire
somebody you usually want to hire
somebody that loves their work loves
what they do that's going to put that
extra effort in without thinking about
hey is this you know am I getting paid
enough or worse as a person that's like
I'm not getting paid enough to do this
then you end up you know stuck so I
think that's a an excellent uh happy
thought to end this one on so we have
like a nice little you know snip and and
whatever your road map is make sure that
you're thinking about what do you not
what other people may want you to do
although that may be part of what drives
you but really it's going to be you want
to do what do you like doing and let's
build out a road map that that works
towards that because the end of the day
the end of your life you want to have
done stuff that was fun you don't want
to sit there and go well I won a bunch
of projects or I made a lot of money but
I hated every second of it that's like
not where you want to be you want to be
like us out there having a good time
talking on a podcast or out on
YouTube that being said we're gonna
actually wrap this one up and then we
will step into our next episode
[Music]