Learning Software Development with Hitesh Choudhary - podcast episode cover

Learning Software Development with Hitesh Choudhary

Jun 01, 202244 minEp. 55
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

One of the best aspects in the Tech world is that you can teach yourself to do lots of things. However, there’s so much information out there nowadays, that it can become too much.. So I invited Hitesh Choudhary on to discuss how to start and how to find quality content when you’re educating yourself. We also discuss what to keep in mind when you’re new, or self-taught, and join a software development team.

More of the topics we cover this episode, in order 💬

☑️ Teaching others in tech through YouTube
☑️ Setting personal learning goals, and achieving them
☑️ Software engineers moving into managerial positions
☑️ Risks of using new tech in production
☑️ Quality without compromise

More on Hitesh Choudhary:

https://hiteshchoudhary.com
https://www.youtube.com/channel/UCXgGY0wkgOzynnHvSEVmE3A
https://linkedin.com/in/hiteshchoudhary
https://twitter.com/Hiteshdotcom

Enjoy!

Transcript

Hi everyone, my name is Patrick you and for today's episode, we talk about education in software. The software industry is very unique in that you can actually teach yourself how to code, but how do you start? And when you join an organization, what stuff do you take with you? And how do you keep learning? I invited YouTuber teacher. And now, even CTO, it has children to talk about this topic. I'll put the links to socials in the description below.

And with that being said, enjoy the episode. A bit into the coding. So I have a multiple passions around. It's not just about coding or videos. It's all a mix of things. Surely coding is what I do. You know, day-to-day life. And that is what I love. Absolutely. They are challenging part, but apart from that, I have a huge interest in video spots. How videos can be in the Cinematic quality? How can I improve the audio? How can I make the best polished videos as possible?

So I thought that let's mix up education with these Cinema. Quality of video so that not only just like guys like Pete mackanin or Casey neistat. They are pro in making videos. But what if an educator comes with a pro quality of audio and video what's going to be that outcome? So I keep on experimenting with my videos audio gear. So that is what my passion lies around with the coding and with the videos and YouTube is a platform that gives me to do

freedom of all of that. Yeah, it's interesting that you say that especially the name, Casey neistat, I used to be addicted to those types of videos. It's not just because they're entertaining but also the video quality, the edits, the transitions everything around. It was just really cool to view and to learn from as well. So I yeah, I totally feel you on that one, but you mentioned education. Specifically.

Why is it education for you? Education for me is something which upgrades you that's the simple definition for me. Anything can be an education. It doesn't need to be a formal degree or a formal certification. It just anything anything in the life that upgrades you from what you were yesterday and what you are now or what you will be tomorrow, that's education for me. It can be by a coding. It can be while learning about the camera gears it can be about anything at all.

So for me education is a really broad topic to discuss if I am teaching on a coding platform that just how to build even a tic-tac-toe, a So that is an education for me, if I'm teaching somebody how to make better audio or better videos, that's all education for me. Yeah, but the question I was wondering is why teach because I think the software engineering community is very distinct, there's a lot of knowledge out there and a lot of people contribute, but even more just

consumed, right? They want to learn everything they need to do to do their daily skills. There's a very distinct few than actually take what they have and teach others and you're absolutely one of them. So, oyyy the teaching part. C teaching is something which is internally built into me because I have faced so much of my time in solving a problem. And it gives me a feeling that you should I tell this that I found this problem. So I should share this that somebody who's facing the exact

same bug exact same problem. He should not face that from now onwards because I have figured it out. Yeah. And by the way of putting it out on the web is that hey I have solved this bug or I have built this app and this is the problem I faced in this is What you having to do so that you don't face this. So that is what teaching makes me exciting and while the other fundamental of teaching is if you want to upgrade your Society, your country or your community.

The only way to upgrade that is not why I money. It's why education. Once people are more educated about certain things, it not only make them job-ready or self-sustained it upgrades that are community, so I'm well, those lucky guys who actually can do it. So, why not to do it? Yeah, yeah. I Of that answer. It's it's very simple, right? Because if you've solved the problem first of all you want to tell people that you've solved it and teaching them how to do

it themselves. It's just there's a certain satisfaction in that that they can be like I see all light bulbs going off in their heads and they actually understand what you've done which is an awesome thing we do it on kind of right? Do it on kind of a micro level right within my team. We pair program, we do knowledge sharing sessions but what you're doing is on a more global Full scale, which is insane. I mean, I've seen the video

series. I followed a few of them even for example, the most recent one on go because I'm kind of fan of go and I like the way you kind of make them bite sized, right? Make them very digestible for people to consume and to learn from because that is still the main goal there. Yeah, that's the rights for other thing. Like I wanted to bring this go series to be out there.

This was not intention to be like I'll get a million views on those cities or something but I wanted to be the The first guy who actually made this, go programming easier to understand for everybody. Nobody paid me for that. I put a huge amount of effort into that, and I wanted to that go to the more popular. So that anybody who's trying to learn, go should understand every let details about it.

So I went to dive into the documentation prepared, a lot of examples around it and when I presented It event, when I meet people, they say is, hey, I watched your that series, it feels so great that. Yes, I was able to make a small impact in somebody's life. If it's really means a lot to me. Yeah. Here it can imagine. So, and it must be. I've seen some of your videos. You started like x amount of years ago probably five plus years ago.

Did you start with YouTube or were you like a software engineer before that? No, I didn't start it like five years. It's been around, almost 10 years, I've been making videos, that's even more. Yeah, I used to be one of the top-selling instructor at udemy on iOS. Yeah, and on been testing as well in the very early days of you dummy when we used to live. Link YouTube, unlisted videos on udemy.

It was so, I used to do that and before that, I have taught in couple of American universities as well, on how to code on C and C++ programming. Awesome. And I have, I was into pen testing in the initial days of

my journey. I used to do penetration testing and they've been durability testing for couple of system and that got my interest that why people are writing bad quality of the code or or one durable code and then Then I moved into the software like let me build it myself and then uncle has no. It's not that it starts simple right? Yeah. I get that but so you've been doing this for kind of ten years and there's a lot of different

facets. First of all, in those 10 years that you've covered and I think things are escalating speed-wise, right? We have the cloud now Securities on the next level front and back and different Technologies popping out of the Woodworks popping out of the ground. Almost every single day feels like Plus for you to educate yourself. There's a numerous amounts of content, right? We have blog posts, YouTube videos, podcasts, It's wherever you want it, you can find

content to consume. How do you first of all, stay up to date. And how do you find real good quality content? Even in the sea of content that's out there? See, well, the problem of the YouTube and the entire internet is there's too much of the noise. So you need to learn and figure out how to remove that noise as much as possible. You cannot remove it entirely but try to remove it as much as possible. I try to consume variety of my knowledge directly from the resources and subscribe.

All these. So many of the newsletters are there. So whenever let's just say, mongodb, as announced an update, or maybe react team is probably doing some update. So initially it was really, really tough, but now, I'm actually on to the privileged position that companies reach out to me that, hey, we are planning this out. So we wouldn't to get you into the loop, react team, and mongodb, inradius team and all those databases, and all the new product they come out to me.

They actually let me know because I can make their voice a bit louder on the internet and that's what they try to do. So now, getting updated is not that much of difficult time in touch directly with the aid of the US team, ready? Steve mongodb. All these are like kind of a good friends now and I'm helping helping them that whatever the product or the update. You are rolling out. Let me make a video about that. Let me make my community aware

of that. So now I'm kind of a central point of consuming, those all the updates that are happening in the, in the coding Community. Yeah. And it straight from the source, right? Your kind of advocating their the Formation that they're either going to bring out. Or as soon as it is out that it is there, which is really cool. And while the great thing about them is they also support this quite a lot though.

So whenever I need a resource access or something, all these companies that qual that thing, best thing I seen in the coding communities. Everybody's so helping in nature, if I'm not able to understand certain topics, whatever that next release they have rolled out, they get an engineer free out of his busy time and gets it with me. That. Hey, you explain this? Today is, what is the new thing? We are rolling out. I understand them, I back and forth, ask a lot of questions.

Yes, I'm sitting like a sitting, like a dummy and once I fully understand them, then I tried to kind of a strip off the complexity out of it and make bit size tutorial so that anybody can follow it. And that actually what I love about the community thing, that's so good. Yeah, that that's a that's a skill, right? Removing some of the abstractions, some of the complexity there and making it teachable, right? Even as am a software engineer on the Today.

And a lot of times you do need to explain what's happening on a technical level to your stakeholders or to your PO. And doing that is, it's difficult. You need to speak a certain language that we can understand each other, right? Because we have different sets of skills yet, we do need each other within a team and within an organization. That is why their toughest

thing. And especially when you make tutorials, while the toughest thing, let's just say, we have built a very simple, e-commerce app. You make a few orders, you create some categories list. Some products and orders are shipping in and you are just paying, that's a very basic e-commerce app. Now, building that e-commerce app is not challenging at all. Because eventually you will figure out bits and pieces and you will plug it in the most challenging part is.

Now you have to record that entire process. You cannot record your hours where you're spending. Just scared, just staring at the screen to resolve those bugs. You cannot do that. And let us say, sometimes you go into a tangent where you have made a mistake, you want to come back and start on to a different tangent. That is a difficult process. And the most challenging thing is still to this date is. Let us say we have built a

product. Now, how we want to record that entire Journey, that how to build a product that is where the challenge comes in. You have to strip off first, you have to decide what models are going to come in controllers. You have to write, then you have to figure out and explain the people that this is why I'm doing it. This is going to be the future impact of this. That's almost like you are designing a product three times, exactly. It's almost that that time

consuming. Yeah, so you you actually, I would have thought Thought, think about it now, maybe it doesn't make sense, but I would have thought you build it as you go. But exactly, as you explained in the even the first few videos you're like, oh this is going to make sense in the future and I'm like, okay maybe maybe has that kind of foresight. But actually maybe you've built already and we're walking through kind of the the more

refined version. Yeah and again problem with the coding is even though you have written it. You again, building it. You are going to face new button and you are sometimes just staring at this. I did. Part of that, that's a new bug. And then that's when you explain people that. Yeah, these kinds of things happen. So let's just figure out how we are going to fix it. Yeah, these things happen. Yeah, I get that.

But I mean the benefit of teaching others either being a trainer or being a teacher, is you go deep into the content, right? You can't really not know your stuff because if there's a question either in the comments or in a class someone asks you a question you want to be able to still educate them. Help them with that question that they have. And if you Don't know, even the basics or a fundamentals on a more deeper level, you're not going to understand the question.

You're not going to be able to help them. So I think a really drilling down into the content and making sure, you know, your stuff. Basically, to be able to teach to be able to train other people. That's a that's a next-level kind of skill, I think. Yeah, I enjoy that too much. And when I joined this company recently, as a CTO, that our team was happy, a lot of people were my students up here. They already got job because of

my courses. And they got super happy, that I'll be able to work with somebody who I have learned remotely. And now, I'll be able to sit him just on the nest next desk. And he'll be able to help me in that. So that gives a lot of thing. Well, thing also, on top of that is, when you teach something, I always starts that, Hey, listen, I'm not the guy who is absolute Pro, I don't know everything. Yeah, and there is no chance, I'm going to ever know everything.

So let's just clear. This fact up here, that I'm also reading a lot of documentation, a lot of books. And then I'm trying to condense that information and pass it on to you. So there are going to be chances. You are going to ask me certain questions that I'm absolutely having no idea. So instead of just blabbering about it I would love to point you towards the documentation and together we can move into that journey of documentation reading and can figure out the

solution. Yeah, I really like that mindset, right. Because it's every every information, I mean, every documentation can be read by any developer, right? We're reading the same documentation, Maybe you're better because you've been doing it longer and condensing that information and translating that to other people. But the documentation is there at the source is still there for people to read and educate

themselves. That doesn't really change and even if you don't know the answer I love that. You're saying let's just partner up and try and figure this thing out because it is complex, right. What we're doing is not easy to do it the right way, I'm it might be easy to just make a solution, but to make it scalable and really understand kind of the fundamentals there that is Only complex. Yeah, I would certainly agree on

that. Eventually, after doing this exact same thing for so long, like, I've been into the very first day when the Swift programming came into that. So I've been into Touch of these programming language for so long. But when you put something on the YouTube and you become a face of YouTube, it is very easy for people to just speculate things about you. And you just assume that, you know, everything at you are kind of a pro in programming, which is not true.

We are just figuring out things on the go. I'm just tiny. It better in that because I've been doing this for a long once you will be. Also they're doing this for 10 years. You will be also be probably better than me. Yeah, I like that right. Anyone can start, it's just, there's a lot of things in our mind that are like I'm either not good enough or I'm never going to get there or the kind of journey ahead is so huge that they forget to start right by starting small taking smaller steps.

You will get better. You will because you put in the time and effort to do so. So eventually the time mate, Very, but you will get better at whatever you want to accomplish. And on one of the good thing about the new coming generation that is sold using the word generation.

So well the good thing about the new pressures that are coming in now you have plethora of resources just flying around on YouTube on the very very affordable courses on you to be we all buy you like tens and thousands of courses udemy. Yes, all of us are guilty as charged of not finishing them. Probably we don't need to some of these courses. We just bought two I've watched three or four videos and getting a sense of who he is and what he's teaching.

So yes I think that should be made us very normal that yes we buy a lot of courses but we don't finish them because we don't need to and we're consuming a lot of information are YouTube and stuff. So I would recommend all of you don't feel guilty about it. We all do it. Yeah. Yeah. But back to kind of the Sea of information that's out there I love the companies are going to you with the source of information, right to educate other people.

But if you're new and kind of starting out and you either want to learn a programming language in, Do certain framework, or even Cloud, technology, or go more in-depth in testing and security. There's a lot of information, write blog posts, everything we just laid out. What would you advice to someone that wants to really educate themselves and in where the quality is, is it more of the paid courses? I mean, you already mentioned newsletters. What would you advise?

Their I would certainly advise start with YouTube because I also provide a lot of paid courses but I would never recommend anybody to jump directly to my paid courses. If Trying to learn anything new right now. The media is all about videos and podcasts. So try to follow up some of your favorite persons on YouTube or podcast, or wherever they exist on Twitter or somewhere and don't just hurry up into absorbing that knowledge.

You are going to spend an entire week and figuring it out who are the top persons in the YouTube space or udemy space or whatever. The space you are talking about and then try to figure out your line and well the thing is people actually are scared of is approaching those instructor. Yes they might Maybe having big numbers on YouTube and stuff, but just give them a hi or hello. I'm pretty sure they are in the community. We are going to reply you up on that.

So don't be scared of that. Once you have, once you've figured out that, these are the five top people in my segment where they are learning spring boot AWS Cloud, etherium blockchain, whatever. That is, there are only a handful of instructors who are going to provide you the actual value. Well, the good thing about this entire coding Community is they can smell the bullshit white from far. So there, Stand, that this person is doesn't actually know the tag, or he's just on the

surface itself. Once you figure out those proper instructor and you are getting a sink with them that, yes, I'm able to resonate with this person on the same frequency. Then you can actually go ahead and try to take their courses or their recommended books, or just discuss them that this is where I want to go. Can you recommend me some books, or some courses, or do you have some material on your side? So just go ahead and try that out. I think that's a fantastic start that you can make.

Yeah. Yeah, we like that. That's that's what I do. Personally, I go to YouTube, I don't really like to read that much. So blog posts and stuff like that. It's not really for me, but the video content as well as someone just explaining, it makes a lot of sense. That's kind of for me. How I learn that plus podcast, just because I can do other stuff while still listening and learning used to game a lot, which also meant cows at some

point. You're done gaming, you want something to still kind of stimulate you. So I would listen to a lot of Just while still gaming, that would be kind of manual tasks. I also watch a lot of podcast, not watch, but listen to a lot of podcasts. I enjoy that because part because I don't have to ask any

question. It just just put up your headphones and that's it. Somebody is doing a conversation for you and tarly and you can just enjoy that very meaningful and very guided conversation with a good audio, of course. So, I just absolutely love podcast. Yeah, same here, I kind of lost my train of thought there when someone's just starting out, right? We already set the information is really overwhelming, but I think is more important is you need a certain mindset, right?

You need to keep going, no matter how huge that Hill is in front of you, you need to be able to digest, be able to put to practice and kind of teach yourself a lot of things. Right? You can for sure you can follow a course, you can go to university get a more formal education. But with software engineering, it's very unique that you can actually teach yourself a lot of stuff because that is already out there.

Yeah, well thing, which I absolutely recommend to a lot of students is that, hey, I don't just go aimlessly that I have to keep on going. I have to keep on going because this might saturate you after sometime what you should do is set up a goal that what you really want to build the because it's all about engineering and Engineering is known for building the stuff, whether it's an application or a website or maybe you want to produce something there, whatever that

is just set up a goal. What do you want to learn and why do you want to learn it? What what's the That you want to achieve. Once you finalize that goal that I want to build an my own Spotify or I want to build my own Amazon or something, the setup that as a benchmark, that whatever I'm going to learn. I'm going to learn to accomplish that goal. I Want to Build That Thing.

Once you have that goal set, you won't be carrying what comes in between what technology have to learn whether that's a cloud or something new, just focus on that thing. And that has actually helped like millions of students that you have built up a set of a goal and I've built that I have accomplished that here. Make sure since the you later like that because that's how you learn on the job, right?

You don't set your own goal, maybe maybe have a company go or a team go something needs to happen. And if you don't know, you make sure you get all the resources that you can find and try and make it happen, right? Try and reach that goal. The difference here is you need to set your own goal and still try and get that instead of being in a more organizational sense in that way. Yeah, we're going back to participate in a lot of hackathons or the community meets or anything that happens

because it's not programming. It's not about just, yeah, surely movies. And all these tell us that, hey, we just sit in the dark room like the codes and stuff. That is one perspective but in reality that is not programmers, are very friendly, they are very approachable. Surely, they don't talk to the outside world. That's why they say that programmers.

I don't like to talk to the world because we don't like to honestly talk to the outside world but once you get a With the programmer itself, then it's all nice and happy. So what I was wondering is you already alluded to earlier that a lot of the technical problems we can actually solve right in a technical team or even individually as software. Engineers technical problems are easier.

What's harder is solving, first of all, the right problems and doing it in a more organizational setting in a, more traditional sense in a way, because I do see a lot of organizations struggling with deliveries deadlines, get moved up. Requirements are not stable. Why do you think that is that it is more of a struggle in, a more organizational sense. So I would say that there are two specific challenges here that we can address.

The first one is when the fresher actually comes into an organization, he's following a lot of YouTubers and I'm one of them and others are there. And our job is to present The Cutting Edge technology in front of everyone. And that's why the freshers things that. Yeah, only best solution is the best and the most latest. Which is not true in certain cases.

Everybody loves microservices. But sometimes, maybe your architecture is more of a monolith architecture, that's where your strength is going to come in. So don't always go for the latest and The Cutting Edge. Try to think a little bit onto the board of a robust solution. And the second problem that I have personally faced and seen is when your product manager or your, senior cxos doesn't come

from the tech background. Because in order to understand what, Persons are saying you need to be a tech person because their language their words are completely different. So somebody might be absolutely good in his management courses. But managing programmers is a different game altogether. You cannot be just an MBA or a manager and can manage all the

programmers. So if a person has written great amount of code in his life and you push him towards the managerial position, first of all, that's a challenging in itself. But if he moves on to that top hierarchy, He will be able to understand what my fellow programmers are saying if the deadlines are extending why they are extending and if the client requirement are not frozen up,

what impact is going to make. So, it's very important that we push to these managerial positions, the programmers who have existing Lee written some code. We need to push them up forward and that's the only way to make a better organization. Yeah. But that brings along a lot of other challenges as well, right? Because if you're in a manager position, all of a sudden, first of all, you're going to be less on the key.

Keyboard less hands on one of your main strength, should then be communication educating and kind of cultivating Talent within your team. And those skills we don't learn as software Engineers. Sure, we can teach ourselves or we can learn by looking at what other managers do but those are very distinct skills that did that me. I'm looking for those in my manager, right? And I love when they can talk with me Tech as well, but those other skills they don't come by default.

That is why these organizations are facing these challenges that they are not able to communicate better because it is so hard to make a programmer. Leave his keyboard and make more managerial decision. It is very difficult and finding that person is difficult. And that is where the challenge comes in. As I was mentioning to you earlier as well that when I joined in as a CTO into this company, everybody was happy and thrilled that.

Now, we have a person in the senior position who understand us, who knows how to write the code and who understand that if something is getting delayed, Why it is delayed. He can throw all the jargons at me and I'll be saying that. Yes, these are all good excuses. You can say that yes this is all something and I except totally that this is not going to be into production in the next week so we need to hold it off.

So that is where you need to find people who actually understand the tech and speaks the tech language. Yeah, here comes from both sides, I used to say a lot, right? It's from a developer side of things, they need to be able to, to change their language based on the people that they're talking to. But also from the other Side, it helps if you understand technology, right? If you are a stakeholder, you

know why things get the later. You have an understanding of how things operate, but from a developer sense, we can change our language, right? We can dive into marketing can either? Thanks, I don't think so that developers are going to change their language anytime soon, I don't think so that's happening. But I do think like even even DVD. For example, the finding a domain defining your language within those Those domains and making sure you can understand each other and communicate.

Like that is part of that that is part of creating that shared language. So we can actually communicate and I do think developers need to understand their domain, right? Need to understand where their piece of the check comes in. So they do need to understand. For example, if you're an e-commerce, it helps to know what a warehouse management system is what happens in their logistically, what happens on a more financial level, right?

How do we build? For example, our suppliers or how do we actually make money by those are not Necessarily technical facets, they do help you understand the business and also help speak that language. But from a business side they don't really care what happens under the hood on a technical

level. So then that dialogue becomes harder That's why I recommend a lot of people try to do a start-up like even if it is a small scale, when you do a start-up, you balance everything on your own from the business side to how to pay the salaries to how to scale infrastructure to the tag, just try to do one Standalone. Start of had, you'll understand everything and you will be able to speak every language that possibly exist in business.

Yeah I do think he would help if even from an organizational point of view. We spend a lot more attention on. I'm kind of getting that communication. Ation. Right right. Making sure that the non-technical people know, little bit of check, making sure that the technical people know little bit more about their domain and we're always going to work in teams.

Right. You know need to be an expert in everything that might be when you're actually in a start-up that's kind of a different Diamond I guess but it does help if you know kind of the nuances if you know the surface if you know the general knowledge that is required there. Yeah, that certainly helps because and again I do totally agree on that, that's not easy thing. That's one of the biggest challenge right now. All organization is running through that.

Hey, can you find us as good manager who can talk to a team or our team is not able to deliver the products on time? The table is not able to deliver the product on time because probably, you haven't Frozen the requirements or you were not able to communicate those requirement in a, in a fashion that they need. So he need a guy who is intermediate between them. I would say you need a compiler. Exactly. I like that on your on, your first point, when you mentioned that, right?

New people, or even existing or more senior Engineers like trying out new technologies, right? But there's a certain a certain robustness that you need before you put it into production, right? Let's say we have an app on my phone and it's buggy, I'm either going to go to a competitor or I'm not going to use this app anymore because it doesn't work right? From a user perspective. If it doesn't work, you're done, people have very Short attention spans nowadays.

So the technologies that we use must have certain standards must be more robust than the more new and up-and-coming things. But those we love to learn about we love to play around with and even sometimes we love to put it into production as well. So this reminds me of all the story. So, before joining up here, I was working as a kind of

consultant. I was writing some code as well for the startup and I recommended them that hey, you are a start-up was focusing a lot on India and Market is more oriented towards Android shortly. IOS? Is there. We cannot lose that, but given the fact that how much budget you have, I think you should focus more on Android and I would highly recommend that I already have experience in the

react native domain. So you should start with react native or just go purely on Android, maybe with kotlin or maybe with Java. That would give you more advantage and you will face eventually less of the bottleneck when things actually go onto the scale. But a lot of new Engineers were there and They all were a big fan of flutter and they wanted to go all in with the flutter. Yeah, because development and building up the UI is in

everything was so great in that. So eventually they decided that now it is, we are going to go with the flutter. So I said, that's cool as well. Let's go with that if you are insisting on that. Yeah. Now we did spend 1.5 month into the development of building.

The UI is in everything and when it comes to injecting those apis, that's where we saw some of the Like into the letter, we found out that there are certain packages which are not ready in the flutter, especially one of them was we wanted to convert some of the Json data into SQL and Excel and all of that face. So many of the issue that we became a situation that either we need to build a package and publish it or there's no way

going forward. So see this kind of thing comes up in lot in organization that sometimes you're so much focused on the new tech that is coming out that you forgot to evaluate that. What are our requirements? Quirements, is this framework or is this library? Or the stick is going to fulfill my requirement or not. And you need to consult somebody senior, who has been doing this stuff? So that's where the challenge

comes into the organization's. Yeah. The hard thing about software engineering is especially when you put it into practice. There's going to be unforeseen events, right? Already. If you're building a smaller project on your own, you're going to find bugs. You're going to find unforeseen things, take that, and put it on a huge scale of an organization,

right? With Thousands of users or at least the aim is to get to. A lot of users you're going to face a lot of issues and those can be blocking with regards to progression, right? As you mentioned, with a flower example, either you need to put in the Technical Resources to make that package, to actually, make sure you meet your requirements or you kind of screwed, right?

You need to Pivot as soon as possible Soviet at the situation, we were at the situation now that we cannot give it back because we have spent one point five months in building. That UI is in flutter. And now, just because one package is There. And that package was consuming probably 15-20 days more. So relative position we cannot go back. We cannot move forward. We are stuck there. Yeah, exactly. And and stucco is not a place you want to be. Yeah.

And the only way for us for us at that point was to move forward and we didn't know that if the same situation is going to arrive again or not. Yeah, yeah. And man that must be kind of daunting, right? Because you're going on a road, first of all your trailblazing because if you're using a new technology, Hasn't been established not a lot of content out there yet, people are still figuring things out. Is this even robust enough to give to user and to make use of it in production, right?

So that must be very scary as well then yeah, so I'll another example that I have is I also have one of the company learn Nest, which handles 12 million users. So that is already at a scale. And at that time, the like still to this date. We are on Ruby on Rails because we find it much more Or solid much more opinionated. We want something, which is opinionated, which stops us from

doing the wrong things. And at that time, LinkedIn was doing so much of marketing that we have moved into node.js. Yeah, so I've been teaching node.js for a while but for a product of that scale and the requirements, very specific requirement that he have there. We moved certain of our micro Services into node.js and immediately we saw the this is not the way we do. It was performing well but a lot

Of new Engineers were coming. I am and they were using Express in certain way that we don't want it because these are not good practices. And teaching every one of them that this is not good. Practice use this, this is not good. Practice use. This was very challenging for us. In Ruby, on Rails. We didn't need to tell anybody because there is only one way of doing that things in Ruby on Rails. Exactly.

Yeah, it's a hard thing, right? And it's harder even to to communicate, for example, to your business. That this is an issue, right? Yes, we can use node.js. Yes, we will have Certain benefit certain downsides but a huge downside is. It's not that opinionated, right? Which means we need conventions. If we don't have those conventions, everyone's going to do everything. You're going to give them a paint, a paint bucket, one person's going to paint blue.

One person's going to paint red. It's going to be a mess of different colors while if your first of all, a language is opinionated. It has certain colors, right? Has colors. That harmonize of harmonize, harmonize if I'm sticking with the same example, or you can make those conventions. You can be like ahhh Use red blue and green but you need to actually educate people then especially new ones. Yeah, exactly. I teach this in my classes as well.

That you might be a big fan of variables, but I am a big fan of constants. That's a good one, but the challenge there is when you learn it's more in isolation, right? Especially if you're just starting out, you're going to consume a lot of content. I don't think you're going to co-create with other people. Write your first of all, going to teach yourself.

How to do it. It's going to be in a certain way, probably because you're going to be like, ah, this is how I do it. This is how I know, this might be one of the ways, but I think it's the best way because that's how I know how to do it. You're going to put that into practice when you come into a team setting, they're going to teach you. These are the rules. You can also do it like this. These are the trade-offs, why did you choose one of these options? Why did you execute it like this?

And that's when you're learning, kind of kicks in overdrive, right? Then you're going to have different opinions different discussions and they're all Going to contribute to kind of your your Learning Journey and that way as well. So, that's why I always say that surely start your journey alone but don't travel the entire path alone because the community is so vibrant, in that you can join conferences, you can join hackathons, you can join

internships. A lot of companies, even provide free to soar the a lot of cohorts that are going in. So even though there's a lot of them are free as well as most of the hackathons are entirely free, just walk into them. Have a discussion with other programmers and see But others are building the same thing in what Manner. Well, challenges with the programmers is, when you build things alone, you don't think too much about the scalability

of the product. So, that's where and the some of the programmers even I've seen their work in a big companies, like Amazon and Microsoft are great companies, Great products. But when you join in as an engineer, You're Building just a screw of certain things and you don't know where that screw is will be injected because the Machinery so big now so it take initial few days in Building either your own startup or join some startup and do everything on your own that that will make

a lot of changes in here. Yeah, I'm really fan and more, and more fan of, kind of those co-creation patterns more programming. And a programming is what I do the most. I haven't had that much experience with more programming, but first of all, I learn how people think how they Implement. And we have a dialogue, I can ask questions immediately and they can answer or vice versa and I learned stuff about their

tool set, right? Because you're probably going to use GitHub, you're going to use some kind of version management system. They're going to have nuances the way they use their editors. The hockey's that they use is going to make them more effective and immediately you learn about those, right? I can ask questions. I can be like, is this on purpose or do you want it like this? Did you know this even existed and you're never going to get that if you program in

isolation. I really think doing that together co-creating in that way, has a lot of residual benefits that is going to make you more. Active, but a lot of people, and even a lot of organizations, say, do developers working on the same problem, that doesn't sound effective. Now, I know I think that's a totally wrong notion. It is very effective and two or three great minds work on the same problem because you're gonna get the best outcome that's possibly coming out of

the three. Best Minds you have hired in your organization. So I totally believe in that. And also on top of that, a lot of my videos that I post on Instagram deals and stuff, they are all about tricks. So all the tricks that I share their they are not like I have found them. They came out of the discussion with other programmers and I'm like hey does anybody knows this or should I make A video about that.

So most of my videos are all about discussions that we had around in the conference room or something. And I try to make a video out of them. Yeah, exactly. You want to be as effective as possible, right? And a trick mind sound, bad initially. But if you have just a huge to boxing, you can pick and choose and use the tools when they need

to happen. Or when you have a certain problem, you can pick the best tools in that way, as well, you can be effective in what you're doing, you're going to be more efficient, right? Sure. Might take longer to solve the actual problem. Mmm, but if you're in fission and everything around that right, even doing branching, rebasing little tools that you need as a developer, it's going to make you more effective down

the road. Yeah. Again, I told you that the whole root of these things are because management the top Management in some of the big organization, they are not coming from the coding background, so they look everything. As where can we get the most optimized or usage of the resource? And when somebody has an engineer or somebody as a coder who reaches out at the top management, that's where you understand that, what could be, the better Engineers are built

different. They are not regular people, the coders. They had a thought regular people at All they're built different. They have a different language itself and their Community is different. So management need to understand this. That we are built differently. Yeah, you developers are very scarce, right? And you can do two things. I think from an organizational point of view, you can take your best engineer. Make them a manager, but they might be unhappy, right?

You need to give people the option. Do you want the managed managerial track, right? This is what it entails. You're going to focus more on communication. You're going to let go more of the Hands-On work, but you're going to be Multiplier, right? You being in that position is going to make other people more effective is going to make our organization more effective as no longer one plus one. You're multiplying everyone or you want to give them the option.

You keep doing what you're doing, you go deeper but you specialize, you really become the best at the Hands-On work and be a great mind in that way. And stir, you have huge amounted to you shampoo use, then you stumble over my words there if huge amounts of facets there as well, right? You have Cloud security. Purity, testing architecture and actually software engineering with different amounts of languages. It's a huge playing field.

But I think from an organizational point of view, you want to give people the option. The option should be there for your existing Engineers or for new Engineers that you bring in. Yeah, exactly. Like what we did recently here as well. There is one great programmer buddy here in the organization. And we wanted to push him towards the team lead position as a team manager, but he was not willing to go there. I said no sir, I want to write more code I'll I'll do that

better. You can have some other job and then I set with him and explained that see I can bring another guy from a managerial background but he won't be able to understand you that much and the team they the team understands you is way way better. So What we agreed on that, that in every week. I'll give him two dedicated days where he'll be purely writing, code do managerial work at all. And rest of the days, he's going to manage the things that this is kind of agreement.

We came in. So, I was more than happy to promote an existing engineer into the managerial position. And that's what I'm doing here. Yeah. And I think every engineer, every engineer that I've met wants to be effective, right? They want to be as effective in writing code, or they want to be as effective in solving those problems and just you need To find out what your personal balance is on that. Is it more Hands-On?

Is it more High over? It's going to be a learning Journey. You can go high over and then be like, this is not for me and go back. That's no problem at all. Just experienced, I think that's the only way. Exactly. And I have never met any engineer who wants to push bad code? And not like the one, not even

one. But again, if you are going to push so much of pressure of the deadline and releasing the product is going to do some hacks and he's gonna just make that Kate Bush. He doesn't want to do it willingly, so you need to understand that sometimes, if engineer is saying, hey, this is not good. We need to hold this release. Listen to him. He's saying it for everybody is greater good. Yeah. And then we get into the same

issues. If the people that are involved in creating those Technical Solutions are non-technical. I mean, talking about POS here and they help in or they discuss the Technical Solutions. They'll go for the fastest one, because that means delivery, that means we're going to make the deadline Lines. But that has a very short-term mindset, right? And software is such a long-term game, right? Those trade-offs that you're going to make now, are going to have huge impact, or might have

huge impact in the future. The problem is might have, which is that makes it harder to be. I may have, yeah, we can, we can remove. This might word found everything going to put the back and probably you need your entire code base from the scratch because of those shortcuts that have taken. So don't take them. Yeah. I see the often like way more often, I feel like as Engineers, we should really push back on those or not even give those as options, right?

Because they shouldn't be options. If they will have impact in the future - impact, they shouldn't be an option. Don't discuss with your stakeholders. I should we write tests. Absolutely, it's part of your craft is part of what you should do. That's not even a question, right? That's in your definition of done. Absolutely 100% agree on that. Yeah, I we went kind of all over the place with the mainline of Education. I really enjoyed this

conversation. Is there anything that's still missing that you still wanted to share? I guess that's more about. I can geek out all their coding practices and what's new coming in high court? Limb is doing have flutter is stifling but Iris version. Next is pushing a so I think we we all out of the geeky side so we can push out a lot. But again, one thing I can Put in as a check out my channel as well.

That probably that's yeah. It's a I'm going to put all his socials in the description below. Check him out and let him know you came from our podcast as well. The next show we might do is in person if he touches are in Holland. Well, actually do this face-to-face and absolutely, that, that's kind of a one ideal. I can make with your show one podcast in person that's going to happen for sure. Awesome. I'm going to look forward to that one.

Thanks for listening everyone and we'll see you on the next one. Thanks for listening everyone. If you like the episode, I want to support the show. Don't forget to leave a rating better yet. Share the episode with a friend. Let us know in the comment section below. What you want to hear. I will make it happen. Cheers.

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android
Open in Metacast