Become A Better Software Developer // ArjanLive Q&A

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
foreign hey everyone good evening morning afternoon wherever you're from welcome to live stream tonight great that you've joined say hi in the chat and um let's see I have a question for you I assume you're programming law in Python but next to python what's the main other programming language you use just post it in the comments I'll be curious to to hear your thoughts about that all right I've got everything to get started here I have my coffee it's in a transparent cup because of course I like transparency so um what I want to do tonight is just answer a few of your questions some of you posted questions on the community post and if you have any questions for me just post them in the chat and I'll try to answer as many of them as possible so okay let me first check what kind of languages we have here oh I already see a PHP JavaScript SQL oh yes of course Scala C sharp kotlin JavaScript golang typescript I'll highlight typescript a lot yeah very good see JavaScript okay lots of JavaScript good C sharp Java or some people still coding Java nice Visual Basic I'm sorry I cannot laugh okay Visual Basic okay that's good Visual Basic is okay that's good why not okay good nice yeah this this is actually quite useful information for me as well you know if I ever want to do some content on covering another language then you know I get an idea of the other types of things that you are interested in so awesome nice all right then so I want to get started with few of the community questions and then I'll also go through the questions you uh you post in a chat um I want to start by a question I'll just go from the oldest to the newest question so Michael posts the question uh four days ago and he writes hi everyone there's a lot of Buzz currently surrounding trpc that's typed RPC remote procedur call and end-to-end type safety between the back end and the front end what are your thoughts when compared to the python backend uh I feel like switching to typescript on both the backend and front and just for the sake of type safety might be Overkill when it means giving up the python ecosystem besides if you use a fast API for the back end type safety provided by pedantic validation is good enough yeah so yeah the way that I look at trpc I haven't used that a lot myself in my company the main tool we use for our backend is graphql but the way I look at it is that's trpc I think that works really well especially if you're building let's say in a tool that where you control the front end and the back end because with trpc of course also due to the type safety you have pretty tight integration right it also is kind of assumes that your code base of front end and backend is sort of this you know the same type of code base so that for example you're both using typescript and then you can you have the types in the back ends and then you use them again in the front end so in that sense that really works quite well now things change a bit if you're building something where you don't have full control over the front end and the back ends and this happens for example if you're simply building an API system that others are going to use or even if you have a tool where you have where you have both front end and backend that actually you want to open up your API to a third party then in that case you know becomes a question whether that's still a good choice and another thing is also that the type safety is good but with RPC you do give up some structure that you get with something like graphql I mean with graphql or even if you're sticking to let's say a fully restful API then you have a sort of structure in place where there's a difference between uh you know mutations and queries for example and with rpcs that's basically just calling a function and you can do whatever you want so that's another thing to think about so my feeling overall is that trpc this looks to be really great for tools where you have full control over front-end and backhands because they are it really integrates tightly and you don't have to worry exactly about how that integration happens but if it's let's say part of the API is is open to the to the public or to other developers that may not have access to your code base then yeah depends whether you really want to use that um yeah and then regarding you know if you want to still combine python with typescript of course of course you can do that and there is the whole python ecosystem but it also feel like typescript node.js that's it's also an ecosystem that's really aimed at the whole web application Arena and if you're dealing with front-end and back-end applications then it actually works quite well dope well python also especially for the backends I really like using fast API as well all right then we have questioned by uh yomayo actually three questions uh first question is a really kind of low level programming question um question is hey let's say we have class that takes orders as an input but these orders come from Channel parser classes for different sales channels that have some attributes and methods that are in common but others that are specific to that particular Channel and then if you have a type in like parcel 1 or parser 2 or parcel 3 is cumbersome but abstract classes leaves Channel specific attributes methods blind in Master Class intellisense how would you go about it so I think this is a good case for protocols actually with protocol classes you can specify methods but also properties that you expect a certain object to have and then you can insert any type of object as long as it adheres to the protocol so that means that when you're using that and you need to have access to those common things you use protocol class so it's decoupled and you don't have to worry about a complicated type hands that are very that are directly coupled to specific Parcels but on the parser and you don't have to worry too much about dealing with abstract classes that limit you too much so that would be my way of solving that a second question is about my past oh this is getting very personal now you've previously previously mentioned you found it multiple startups do you mind sharing what were the main mistakes for their failures were a senior developer of seeing company called this at the time yeah so um in fact my original background is from Academia so for I'd say almost um I guess 10 years or so yeah 10 years or so I've I was at the University and I was basically following the the classic academic career right so I did my studies of course like many of us have done you know bachelor Master but then I went on and did the PHD and then I went on and became assistant professor and did more research teaching and then I went on to become an associate professor so that's like the whole those career steps that you make in Academia and I only realized when I was start when I left Academia when I started a company how extremely focused Academia is on basically ego building that's probably why all the full professors have huge Egos and Academia everything you do is related to promoting yourself as a person right you get titles you publish papers with your name on it that other people then cite which makes you more important and then you get invited to speak at conferences which make you feel even more important and then by doing that you can more easily get money to do research projects which give you even more importance as a person so everything is about you as a person and the strange thing is so you get this idea of okay so I'm important my ego is very important but then when you start a company you realize that actually nobody cares um and it took me honestly a while to to really understand that that when you launch a company or even what I'm doing now with my YouTube channel is that I have to really make sure that it's it's not about me right it's um in the case of YouTube it's about you and me trying to help you in the best way possible and some of the mistakes I made in the company also in the companies before also relate to that where um uh basically I was to too stubborn to reconsiderate using a certain technology or making a different design choice because we were simply not listening to our customers and our customers were saying something but we were let's say a very ego driven we think well no no we know this better and then we do it our way but then of course it doesn't work so that was let's say a failure on a personal front and that's the weird thing about starting a company is that it's actually just as much a let's say entrepreneurial Journey as it is a personal journey and you learn so much about yourself and you have to leave so many things about your past behind you and kind of shared that whole idea of ego and who you are and what you stand for and only then I feel like you can take a next step in your growth now there's also less personal things that went wrong like we simply picked the wrong technology when we had our first startup company we basically picked it wrong and then that technology didn't pan out [Music] I mean we were starting a company just at the phase where like Cloud technology react that was just sort of taking off and we went basically with a much more limited uh technology and not react so well we picked wrong but then in the second company we did a better job but still um that failed again because well that was sort of not completely our fault I mean we did a better job in the second company of building a product that was actually useful but we found out that the our intended customers actually didn't want to spend any money on those tools so also there it was a mistake of not properly taking the time of understanding the customers that you are serving and making sure that there is actually a business case and now we're doing that very differently so I feel like the way that it's at least in my company that it's set up now it works better because we are serving customers who have budget for the kinds of tools we're developing and we're also spending way more time listening to what our customers actually want and basically putting them in front of everything and sort and always trying to put ourselves in a position where we view ourselves as Learners of learning how the market works and what people actually need and then building that and that shift that's that's a really important mind shift you have to make and for me that that was the biggest thing uh what I've learned has as I've started and failed all these different companies okay third question still uh at questions of uh Yuma also teaching I got suggested teaching beginner python courses um I'd say there's a a couple of them what the website that I like a lot is a real real python and they have lots of tutorials they also have lots of lessons I'd say that's a great way to start and they cover basically anything you need to know about python all right uh Guzman hi Aryan can you talk about how to translate um object-oriented architecture to a database schema I'm talking about object relational impotence mismatch a relational database doesn't understand obvious program but if we design our objects with solids how can we reconcile both um for example in Django's or Ram you define a model that will map to a table with rows and columns but I don't know how to link the object oriented design with the SQL design yeah so of course databases and um databases are not an objects are not an object oriented system that has all the aspects of object oriented programming in the sense that it has polymorphism and and inheritance and things like that that's not what a database is right it's a way to represent structured data and the SQL language is also not object oriented um so I'd say they're the the similarity between a database system and the query language adds an object-oriented programming language kind of ends at that border where we're still talking about objects that are related to each other that are composed in different ways in a database that happens via foreign keys but in in a program that happens uh via a composition um but that's kind of where it ends so I don't think it makes a whole lot of sense to try and introduce an inheritance uh concept into databases or have some sort of polymorphism or something like that so that means that if you look at things like solid principles there's only part of those principles that you can apply to databases and database structures because they're intended for object oriented design not for database design so things like you know single responsibility that's still something that you can apply to a database but then it's more about how you structure your data so if you have a customer and the customer has an address then perhaps it makes sense to put an address in a separate table so you keep kind of the concerns separated but you know a lot of these ideas whether we're thinking about single responsibility principle cohesion coupling there's all it's also not completely clear where those boundaries are and when we still consider something to be part of the single responsibility principle because that's more oriented toward classes or when we're talking about cohesion does that only apply to single methods or do we also apply to a class ultimately it's about making a logical choice in the sense of not over complicating things too much and when things start to become messy when structures start to become too complex try to split them up and it almost becomes an intuition of where you have that cutoff point where you decide as a developer hey this object is starting to become too complex I'm going to need to split this up so um I hope that's kind of helpful it's maybe not really an answer to your question I can't give you like a fixed guideline of how to do it but I hope it gives you a better idea all right uh final question from the chat let me just refresh to make sure there's no new questions here and then I'll continue to um questions in the chat is um from Abomination when using multiple modules how can I assure all threads are killed on exits I'm not a multi-threading expert I've used threads mainly in my C plus plus days when I was building on a game engine so not really that much in Python actually um I'd say the the if you really want to be short well first if you're using multiple threads try to think of the of Designing the threads in such a way that you can always safely exit them sometimes that's not possible if a threat waits for keyboard input or something if that's if you can't do it that way then you can kill the process basically so I think there is always.kill and you can get the current process ID and when you go to process then that's really going to kill all the threats but that's commonly not seen as something that's a very clean design so if possible try to design your threads in such a way that you can stop them if that's really not possible there's always.kill all right uh one more question in the community post uh J bendery what kind of businesses did you serve in your early days of Independence Consulting um small big what kind of solutions did you mostly provide Yeah so basically independent Consulting I'm mainly doing that as part of my YouTube channel actually so I help uh businesses with um you know evaluating their code base trying to give them some useful pointers of uh what gives gives them the best return on investment like where should you spend your time as a development team on improving your code and then uh um like what is the simplest thing that you can do to get most of the results so um and I've done that for both smaller and bigger companies and it's actually uh quite a lot of fun to do that so that's that's what I did all right I'm going to go through a few um messages in the chat so I'm going to start all the way at the top from something how many nested for Loops are possible and combinations of four and if any best practices yeah so the more of those you put together in a single piece of code the harder it's going to be to understand what's happening and it's also danger if you Nest too many for and and if that it's going to take a really big hit on performance because you have no more overview of how often a certain piece of code is executed so that's um I generally try to avoid having more than two to three uh layers of indentation basically in my code so if I have a function if I notice that I start to have nested for loops and if statements I think about can I split that up I think that's one option and another option is also to instead of using all these for Loops try to think of a more functional approach can you use things like map and uh or filters and things like that to achieve the same thing without that deep level of indentation so that's what I would generally recommend let's see then we have um a question from uh they said so is there any books course you would recommend for beginner student pythia so like I said real python is very good um and then um Eric uh thank you for all your invaluable content you're most welcome I'm happy you'll like it uh Dimitri why is it so hard to get a first job offer as a python developer well I guess that depends on the on the domain that you're applying to I think if you're applying to more data analysis data science type of job uh they want more than just having python knowledge they also want you to have some kind of mathematics statistics knowledge um if you're applying to really more of a purely software developer job then I can also Imagine That companies want to see a bit more than just having knowledge of the Python scripting language so it will be helpful if you have let's say some knowledge of a more let's say really more application oriented language like uh C or c-sharp or Java and that's going to help you as be more established as a software developer so that's what I expect um rule says are you doing internship at a startup you want to implement design patterns in your project but um the logic doesn't really click yeah that's the that's the thing it's what I find especially with design patterns is that's really important to get some practice in and think about basically one I'd almost never think hey should I use um or if I look at a piece of code I generally don't ask questions like what design patterns should I use here it's normally uh kind of comes up when I try to think from the use case perspective so think about hey how would I like to use this code and what can I do to make the code more generic and in what kind of ways could I intend the codes being used in the future and then that almost automatically leads to design patterns choices like sometimes that may end up being a sort of a strategy or a factory something that creates objects um and even then I rarely really think about design patterns in those explicit terms uh they just kind of come up when I start to think about making things more General and it takes some time to you know develop that skill um so the main thing I can say is get more practice with it and uh the more refactoring you do the more the easier this becomes all right uh GSW says I use this code often I get an error tabs and spaces uh the vs command list is up but I can't figure out why I get this so frequently yeah so for me what helped me a lot is using an auto formatter like black that's the one I use and this does some of that formatting for you so then it avoids a lot of those problems um and I think that's also a common thing oh I'm not sure uh looks to be was maybe some connection issue anyway um where was I again uh oh yeah the tabs on the spaces yeah so I think there's also setting in vs code you have to make sure that uh line breaks in files are always dealt with and the same thing the tabs are converted to spaces consistently and things like that um uh just smile what do you think about Swift and iOS development overall I've used Swift a bit for developing games was more like a hobby project I never released any iOS apps or something um what I liked about Swift was um how it introduced a bit more let's say strictness in objects or variables being null and having a possibility to check that and to only you know do like optional chaining and things like that I think um Swift really took a few good steps in that direction and I'd like python to do more of those things as well which unfortunately at the moment it doesn't so I think it's a nice language iOS development you have to use Swift for that it's of course you're very much in the Apple ecosystem and then it's also kind of hard to translate your code to let's say an Android device which often you want to develop for both platforms so then Swift is not that usable of course but yeah that's also the thing like um in a language like Swift and if you're in the Apple ecosystem then Apple does things slightly differently in an Android and the other way around so then you can also benefit more from that but it's also annoying sometimes um especially if you're doing web development I remember we had a bunch of issues in the past with uh Safari actually if you scroll down it kind of hides the title bar which is great on iOS devices but it also means that the viewport size changes and not all libraries deal with that correctly so you can end up with all sorts of weird issues where things work in Chrome and they don't work in Safari and things like that really annoying um anyway uh Auntie says protocols implicit versus implicit why that's a very short way of phrasing a question um I'm guessing you mean that um that there's a difference between using protocols and doctyping versus uh using inheritance and let's say abstract based classes now you can also use inheritance in combination with protocols actually in that sense Protocols are actually a let's say superset of what you can do with abstract base classes where I find them particularly useful is if um if you're let's say you want to decouple your code from a third party library but you can change the code of that third party Library so normally the way you would like to decouple is introduce some sort of abstraction like an abstract base class but then the class from that third party library that you're using needs to inherit from that abstract Base Class and that might not always be possible so with dog typing and protocols you don't need to do that you can simply Supply the protocols or you can simply Define the protocol class and then doctyping takes care of the of the type matching but there's a counter site to that argument that if you lose the inheritance relationship there's no explicit inheritance well then you also while you're creating that class that implements the protocol you also lose the type checking and verification that you're actually adding the right methods and properties so that's the trade-off gives more flexibility but the flexibility comes at a price um next uh by iftakar how can one master design patterns using only three resources when one has no idea about it there's a really nice site called refactoring dot Guru I think that's really nice they have all the design patterns on there with also a bunch of examples so I think that's a really good starting point so you can learn there a lot about design patterns how they're being used um and uh I think they also have an ebook that you can buy so I think that's a good starting point though the ebook is not free but the website is actually free and um yeah like I said earlier if you really want to become comfortable with design patterns they need to become part of your let's say standard toolkit and for that it's really important that you practice them just like you practice writing codes practice with system design um and do it step by step and uh if if you want to let's say use only three resources and you don't really know where to start another thing you can also do is see if you can contribute to some open source projects and have some discussion in a community of developers like you know on my Discord server there's loads of people where you can also ask questions and discuss those things and learn about it all right this is getting quite cold um ah okay I'm not sure what it is about cold coffee it's kind of disgusting unless it's iced coffee then it's good again so there's like this area where coffee is hot then it's good coffee is like I don't know a bit nah and then when it's really cold again it gets good again but this has nothing to do with uh python of course okay next question what are some resources for becoming great soft development regardless of the programming language design patterns system architecture now my channel of course I try to share a lot of those things on my channel uh there are also some good books that also talk I I'd say the books by Robert Martin I really like them though they're also getting slightly dated maybe the examples are not really that applicable anymore to Modern software development but they're still really explain the topics quite well um uh Wonderboy what do you think about open AI well I'll tell you something I just recorded a video about it this afternoon I decided to um change my schedule a bit so normally I kind of record my videos pretty far in advance so I've always got a couple of weeks of content ready to go but with uh the chat GPT release of open AI last week I thought it would be important to at least share some thoughts about it on my YouTube channel so this Friday I'm going to publish a video about it my video editor hates me because I'm just giving him a lot of work at the very last minute but well I do think it's important to talk about it um so Friday I'll cover that in a video Indian devs do you recommend learning Django for uh jobs and freelancing um uh which Tech pass would you recommend for the next few years to get a stable job it's important uh to let's say be have sort of a complete skill set in the the most areas or most important areas of tech and nowadays a lot of things are web-based so I think having some knowledge of front-end development is important having some knowledge of back-end development is important and um having some experience with Cloud architecture and it can be pretty basic you don't have to be a complete Cloud Guru but it's still very useful knowledge to have so that's I say one kind of area of development that you could go into and then if you have those three bases covered I think that's already pretty good and part of clouds I also consider a databases um another main area that's I think is a good area to focus on is more really the hardcore data side where you concentrate more on being able to read analyze process data machine learning and those those kinds of techniques uh so for me these are the two main things that I think at least for the coming years those are going to provide pretty stable jobs because lots of people are interested in Ai and all of the tools around it so if you have knowledge in that area you are very valuable also lots of people are interested in web development and back-end Technologies and all those kind of things so if you know that stuff that's also a pretty safe shot I'd say um Marcos I just started my first Cloud deaf gig and I was wondering if you have any tips for quickly understanding and being useful within a company's unique software infrastructure um yeah we've had some experience with uh hiring Junior developers and uh and trying to figure out how to best introduce them to our code base because at the moment our code base is getting pretty large it's even getting to a point where we have a hard time understanding what's going on um so the way that we do it with uh with the new Junior developers or with interns is that we expose them step by step and we start by um letting giving somebody really small very focused uh job and focusing on a really one specific area of the application so you don't have to worry about the rest for example in our platform that we're developing we have a multiple choice question editor and uh well one thing we'd like to have is that you're able to drag and drop the the options around which currently we don't have that so then that's like a really specific area of the application and then we ask a junior developer to hey use that library and then Implement drag and drop basically so you don't have to worry about any backhand you don't have to worry about security it's really just about some minor user interface adjustment and then you know once you once you get more comfortable with that you can slowly start adding more complexity and introduce somebody to other aspects of the system another thing we also like to do is ask Junior developers to actually perform a refill of the application so not the code but how the application works so that somebody also gets an understanding of the flow like hey how is this setup why are what are the concepts in this application and how they relate it and does that actually make sense to me and that's actually a really important step it's not just about understanding the code it's also about understanding the domain and uh um and the type of solution that you're building as a company so lots of companies I feel forget about that aspect and only focus on the code like you need to know about the specific Technologies and how everything is integrated no you need to understand what problem you're solving for your customer and how that solution is structured and why certain choices have been made because if you don't know those things it's really hard to add new things to the code or to make improvements if you don't understand the context all right junkie man are you a full-time YouTuber now well not entirely I'm in this I am let's say full-time entrepreneur but I kind of divide my time between my two companies at the moment so I have my education software company that takes up about half of my time and I have the YouTube business with the online course and everything surrounding creating YouTube content now I am planning in the next year to slowly phase out of the education company and really focus full time on YouTube because I really enjoy making videos a lot and have lots of cool ideas that I want to explore uh but that's another thing if you know if you have just a job you can decide to quit the job at some point but if you have your own company that's kind of hard to do because of course there are employees we have to make sure that the company survives so um I have to make that transition in a way that it makes sense and that's um it doesn't leave my people colleagues in the Cults basically um uh Nubian monk what's your go-to style guide for python yeah so I mainly used the black Auto formatter and I think that mostly follows the pep 8 Stateline um so I simply followed out I don't really have to worry about a specific other style issues I did talk a while back about Google's style guide I like a lot of the ideas that are in that style guide there's a video about that on my channel from a couple of months ago so I follow most of those ideas um let's see uh kilgon asks I'm working on a data analysis project with several steps outcomes and I'm having a hard time to organize it I've Python scripts to process and others for outcomes how would you organize this yeah it's kind of far to answer if I don't know the exact uh structure and and things that you are that you're doing um yeah there's a couple of different ways to think about it I guess um if you if you are having trouble organizing things you could you could organize it according to the concepts so for example um I don't know let's say you have a point of sale system you have customers and so you have one part of the code that's all about customers you have order so you have all of the code that's surrounding orders and you organize it according to those Concepts in your application another thing you can do is organize it more according to the architecture of the software so if you have let's say the architecture is a data processing pipeline then you probably have input like things like parsing cleaning up data loading things like that and you have processing which means all kinds of operations that you perform on the data and you have exports right so you can also structure it that way and often following the architecture is a good way to start at least that's what I noticed so I hope that that helps it's a bit generic but I hope that helps uh across watch of you on low code tools for python I haven't used any of those tools but I do think the idea is nice especially I think local tools are really cool to quickly come up with a prototype for something I just have to make sure that you're also able to translate that to a full-fledged application if that's even necessary sometimes you don't even need to do that um so uh let's see Jonas do you have any videos about how to structure your files in a software project and not specifically I do have some parts of that in my online course but I'm not sure I actually posted about it on the on the YouTube channel um all right yeah there's some threads question I I've I must admit I I don't have that much experience with dealing with all kinds of different threads in in Python so I'm going to skip those um our tour any tips for us who are very passionate about software development did not study computer science and have arrived late to the game to pursue a successful software development career yeah so I really don't think not having studied computer science is a limitation anymore especially because there are so many resources that are available online and also because I think actually computer science studies especially at the University level don't really prepare you all that well for a software development job I find reality is quite different from what you learn at the University um so and and there's another thing that's um yeah especially for let's say older people like 40 plus if you consider that old it depends how old you are yourself I guess uh is that often companies uh you know tend to look for junior developers who are in their early 20s because of course they are cheaper so then it's sort of harder to get into the game if you're an older developer um what does help I think is if you kind of position yourself a bit differently from the common Junior developers by also relying on some of your other skills I mean if you are 40 plus years old you will probably have done lots of other things in your previous career even if that wasn't related to software development so you might have some experience in management or you may have some experience in marketing or sales and those are valuable skills and they also on some level combine quite well with software development so I think that's kind of a hook where if you're let's say a not early 20s just coming out of University then that life experience is also valuable so that's uh I think a good starting point um all right Habib says I want to move towards the latest tech stack react angular yeah few notes but my current job doesn't allow me free time at all then please how to improve and get a better job yeah that's a hard one um it depends on how much like if you really have zero free time I think that's a serious issue you need to think really about whether you want to stay in that job and you want to switch to something else so you actually get some of your life back in the end you know work is not the only thing you should do in your life where you work should support you in the things that you want to achieve for personal growth um so I'd say the first step is get some of that time back so you can actually focus on personal growth and if that's really not possible then I think the first step is getting a job that has normal hours so that you have some of your freedom back and then the next step is actually um learning and uh trying to do newer things um all right um just typing something here yeah so next question uh you mentioned dry python in one of your videos that don't see it getting adapted much yeah I'm uh I'm not sure why that's happening I think um the the yeah it's I I don't know um I I haven't used it myself uh either all that much so maybe it's just um some things that sometimes that happens I'm not really sure uh Surah asks I'm a QA automation engineer four years with python and selenium it's time to switch to development yeah I think four years if you're doing uh the same job for four years that's uh you know that's pretty long and it might be a good time to uh to at least shift your uh your focus a little bit I find also for myself if I work on using a specific technology for three to four years I'm kind of fed up with it oh that hasn't happened yet with python but you know it's still uh it's it's a good period to start looking at a few other things to just to broaden your horizon um it's it's also that you reach a point where you know if you stick too long to one particular technology you kind of start closing your eyes for the new things that are happening around you so it's really nice to uh to take a few steps and and look at into a few other things even if you stay on the same job and the same technology afterwards you will still have learned a bunch of new things um look says I've got laid off by my current company sorry to hear that having a hard time finding a job one to two years experience as backup back-end python Django mongodb any tips yeah so uh it's I I think it's a common problem at the moment with a lot of tech companies that are also laying off uh employees um it's uh it's getting uh to be a bit more difficult job markets so I'd say you have to make sure that uh you have you develop some skills that kind of set you apart from other people um so um if you're not just doing back end it might help to to do some front-end so you have a bit of a wider area of expertise you could also try and get a bit more General business experience for example you could do some freelance jobs um actually it's I do think it's a nice time for uh freelance Duos because a lot of those companies that laid off workers they are still need to do work and Freelancers give a company a bit more flexibility and that they can just hire freelancer to do some work for them and then they're not attached to that person in the sense of that it has an employment contract and things like that so for Freelancers and companies looking for a bit more flexibility that's actually I think that's that can definitely work in the current environment so you could also think about hey can I maybe take on some freelance jobs and try a few different things learn a few new things so that's my suggestion actually the switching to data science from developer worth it yeah it's kind of a different domain if you're interested in that why not I still think data scientists are in high demand um especially uh you know companies keep continuing investing in trying to better understand their data and taking better more efficient decisions so you could do that but you know it's not an easy switch because you also need to learn a lot of new things because being a data scientist is a very different job from being a developer so I would not make that full switch like that and just stop being a developer and only do data science what maybe try and taste of it and maybe try and do smaller assignments smaller jobs to see whether you really like it before you go all in uh let's see um Paul says Pineland gives too many instance attributes when using pedantic for a schema validation in CSV file understand this for normal classes but for data classes how would you solve this yeah um I mean pilot is basically just a collection of rules and best practices and they don't apply to all situations so what you can do is simply switch off that rule for that particular area of code where you uh where you encounter that problem I'm not exactly sure what what the the rule is that you need to disable but there's a website where you can see all of them and then you just disable them for the part uh where it's complaining um only do that by the way if you're sure that's uh it's actually not a valid complaint because and don't switch it off globally because there might be other areas in your code where it's still valuable to get that kind of feedback but locally you can certainly do that uh Roberto is python the right choice for writing apis that face to other options like Java spring boot node.js um well we had a question in the beginning of the of the live stream about a typed RPC and there I said that well my dear is that this is a really good option if you both control front end and back-end code because then you can integrate them more tightly and benefit from things like type safety if you have a python API that's consumed by a node.js front end then of course you don't have that possibility but [Music] um python is also a really nice choice for writing apis especially with tools like Fast API and pedantic and one thing I really like about python is that unlike typescript you don't have to first compile it into JavaScript or something before it actually works not python you can just run that directly you don't have to worry about those things and there's lots of things that are of course already built in as uh into the python standard Library so um if you don't mind having two different programming languages in your application python for the backends and something like Java or typescripts node.js for the frontier then I don't see a particular issue with it of course the the if you are building a back end you should follow things like that an API is restful or use graphql or thing or those types of Standards to make sure that communication actually works but other than that that's uh that's totally fine I do also like that in my company we use node.js also for the backend so we have it both front end and back-end and that does have some advantages in the sense that especially if you have a small team and everybody works on the same code base that you don't have to do all the time this context switch between different programming languages um all right so Jared morning from Australia good morning morning wow that's 9 p.m here already um cigarettes 40 second likes thank you so much thank you so much uh you're stuck here now yeah good I'm gonna there's gonna be a really long live stream okay um uh Jason hey are you a big fan from you say thank you so much what's your favorite GUI framework and either python or JavaScript yeah uh JavaScript uh we're using we're still on material UI that still works quite well I I think the way that it's set up is not always that good in terms of uh software design it I I feel like a lot of these UI Frameworks and in JavaScript they kind of are a hack on top of HTML and CSS and it always feels a bit I I don't know uh I I hope that there's going to be at some point where browsers just decide to introduce some new standards that's not CSS and HTML but that's more let's say application oriented I mean that's mainly the type of web content reviewing nowadays anyway uh but uh yeah material UI Works quite well python what I generally use for GUI Frameworks I I use Python pretty Loosely for lots of different things I don't really use that much myself to build guise if I do need a GUI I will just use whatever is the most simple so commonly that's either thick answer or sometimes by QT but I don't have a very strong preference for that um human being just how often do you use plotlease Dash framework do you do much front-end development if so do you have a preferred front-end framework yeah so my main front-end development work is done in uh typescript and react I feel like that works uh for me works the best um uh python I mainly use for backend work actually and more one-off scripts or if I want to analyze some Excel or CSV data I like to use Python for that I just think it's it's simpler and I use Python a lot for let's say smaller back-end tasks that I want to run in the cloud to give you an example I have since two months or so I have an Instagram account and there is a bio and you can put a link in the bio so I want to put the my latest video in the bio but I I'm too lazy so I don't want to every Friday have to update that link to point to my latest video on YouTube so what I did instead is that I created a DNS entry in cloudflare that has a rewrite rule to actually redirect that URL to my latest YouTube video and cloudflare as an API so I created a simple python Cloud function in Google Cloud that I use a cloud schedule so like a chrome job that basically every Friday at I don't know 10 past five or something 10 minutes after my video has been published that it's actually up updating it access the YouTube API to get the latest list of videos and then takes the URL of the latest video and stores that in the cloudflare forwarding rule so that I don't have to do it but that's like a tiny little python script that does it and have like a bunch of those small scripts that run all kinds of automations in in the back end of of iron code so that's what I really like using python for because it's so simple to set up um Andres do you think that Python's Protocols are inspired by ghost interfaces um as python matures I noticed that it adopts stuff from go yeah I think python adopts lots of things from lots of different programming languages I also see some things that are taken from typescript like um the way that you specify type Union Unions that's basically the same as that you do in a typescript so I think that's a good thing all these languages they learn from each other and they improve according to what other languages are using so I'm not exactly sure where Python's protocols come from but I do um do get that they're working in the way that they are because uh the the whole dock typing aspect of protocols fits well within Python's own typing system so it makes a lot of sense um Keith I'm having an issue with creating an interface trying to separate buttons from the code they execute and you also want to enable and disable the buttons and you're running into issues with circular references yeah so this is really where I've introducing abstraction can help so um you'll probably have some kind of callback methods or some or some object that you're calling to enable or disable the buttons and the buttons in turn probably also call another object that then execute the code that should be run when you press the buttons right so you have kind of a model controller setup and what works well is uh if if you introduce abstraction in both ways so uh the The View which has the buttons has a link to controller object but you do that via an interface so that can be a protocol that can be an abstract based class whatever you feel most comfortable with so then um then you import the abstract base class or the protocol in the view so it's not dependent on the specific controller and on the control side you can do the same thing so you also there you specify in a protocol or using an abstract Base Class the uh the view interface the main methods that you're going to call in the view and then neither needs to know anything about the other so they all they both use abstraction and then your main function you patch everything up uh actual thoughts on Django ninja um not really I haven't really um uh used that myself um let's see um just going to scroll down a bit to cover a few other questions as well um so trim on what do you think of chat GPT do you think it will revolutionized programming industry uh well I do think it gives a glimpse of how the future of software development is going to be what it's going to look like I don't think a chat interface is the main way that we're going to interact with these kind of AI tools I think tools like GitHub co-pilot are better indication of how this is going to work for software development so it will be something that's going to be more tightly integrated um so I'd say that um I guess in the coming years we're going to see more of these kinds of tools appear in Ides like vs code so like I said we've already seen that a bit with uh with GitHub copilot top nine you know there's uh there's other tools that also um integrate into your editor environment and I think there's going to be more things like that for example I can imagine that you're going to have buttons to if you are editing your code maybe you can have a button that you just select some code and then you or you have a keyboard shortcuts and then you actually get an explanation of what the code does integrated in your IDE or um perhaps while you're typing the IDE is going to automatically suggest things to you like hey did you cover that edge case in that function if not do you want me to add the lines of code that do that right so those kind of things or a button to generate tests or things like that or you know you can select some code and then it's going to try and find bugs for you that that kind of thing so I think those kind of Integrations are probably the next step where we take those AI tools and then we integrate more tightly into the Ides and then um yeah let's see where it's uh where it goes from there so I think chats GPT in itself that's not going to be the tool that everybody is going to use for coding though it is kind of nice and you can actually include in your workflow I'll cover a few of those things in my video on Friday um but I I think where it's really going to change things is once we get more advanced tools that integrate directly into the IDE so I'm actually quite excited about that I'm really curious to see where this is going um actually at how are inbuilt decorators like property and wrap different from decorators we make like how is it even making how is it even making a function a property Yeah so basically decorators and python are syntactic sugar for a rubber function and you can write a wrapper function yourself as well so there's really no difference in that sense of course where it becomes interesting is how you use the functionality to simplify things there you also have to be careful I find that if you're using decorators you're also hiding things because there are things hidden behind that decorator so and sometimes that has some unintended consequences um like um oh I did a video a while ago about this about Hydra yeah about Hydra this is a tool that reads configuration files and then you add a also have to add a decorator to a function but then the decorator will supply an object to the function but you still have to actually call that function without arguments at the start of your application so it works but it also breaks your type system basically because the types don't match and you get all kinds of errors that you then have to switch off so when you use something like decorators make sure you do it properly and you don't like introduce things that conflicts with the tools in your ID um let's see uh have you ever programmed in Rust uh not really I've taken a brief look at it I haven't done any real work in Rust myself but I am kind of interested in it so it looks like a nice language to learn next uh Jonas uh what are the first things you do when you start a new python projects uh where do you start your coding yeah so not just for python projects but basically for anything um I try to as a first step understand the uh the risk of the various things that I want to do in that particular project so for example um let's say you you are building a back-end application that talks to database right so let's say using mongodb or something and you want to use a fast API and build a python API so where is the main risk in that particular type of application what is the most challenging thing that's what I try to determine first so for me the most challenging thing to get up and running in that particular example is let's say a basic setup that connects all of those things so that there is a database and that we have a backend that talks to the database even though it's extremely limited and maybe just gets some random data from the database and that there is a way to deploy that thing so that it runs in in the cloud under a a given domain so typically when I start building my project that's where I start first because also when I integrate all those things often while you're doing that you learn new things about the limitations of how these Technologies work and what you need to think about if you want to design a more complex application so for example you might realize that when you connect to the database that there are certain limitations that's applied to I don't know authentication or things like that so that may affect the design so the sooner you know those big things the easier it becomes to also build on the tool and build it faster and not make wrong choices in the beginning that are going to be a lot of work to refactor later on so it's really a question of uh trying to uh trying to understand where the main risks are and whether you can mitigate those risks as soon as possible because then after that designing the whole thing you have basically all the knowledge you need to take those next steps um all right peace Angel hey I heart learn problem solving thing can you make videos about problem solving and the steps yeah that's actually a good suggestion thanks I will consider that uh ashai says let's see professionally or full stack web developer web developer Django and react do you have any tips for web developers yeah so also there in general um try to mitigate risks try to understand if you're developing a web application especially if nowadays if you're in the JavaScript ecosystem you will rely on hundreds thousands of different node modules and not all of those node modules will work together nicely so and that's a risk because then you invest in setting up integrating a particular node module but then you realize later on oh it doesn't actually work correctly with that so then you have to change things up again so try to get that aspect of your design comfort as soon as possible so then those risks are gone and you also know how you are supposed to set up things if you use that particular combination of Technologies in your stack um right Mark what are your thoughts about generalists versus specialists yeah you need kind of both in a company I think um no I'm thinking about should I consider myself more of a journalist or more of a specialist I guess I'm more of a journalist than a specialist in a sense because mainly because I did so many different things and not all of them I went into like full depth I haven't spent 10 years on I don't know programming in python or something I've done that for a few years but then I've also done a few years of typescript I've done some C plus plus I've done some Java you know lots lots of different things so um I'd say journalists are very useful because they understand the bigger context better of things and they have a wider Horizon wider point of view because they know so many different things and Specialists are useful because they will be able to solve very specific problems and they will know exactly given a specific context how to zoom in efficiently and and solve the things that you need to solve so I guess you need both um let's see um Don Brown welcome uh as a member great tattoo joints uh Phil when should I Define class variables as self.variable instead of variable yeah so classes are basically a mechanism of grouping data and behavior right and um and what you often do with classes that you create instances of those classes and then you have an object and if you have self.variable the variable is part of the object it's an instance variable if you just use variable then it's part of the class and then that variable is shared over all the instances of the class so the question always is um how do you use the variable do you use it as a common thing that's uh maybe it's like a config setting that you use in methods of of a class or is it something that's part of data that you want to have multiple instances of if you want to have multiple instances use self. if you don't need that use a class variable but in that case you can also wonder whether a class actually really need it and you could just turn it into a module with some constants that might also work I hope uh hope that that helps uh hi Diego uh another question from will also any tips for learning best practices for writing python open source packages well open source packages are not any different from um Regular packages right it's all code but open source packages are of course generally worked on by a bigger variety of of teams that are spread all over the world so maybe the processes are a bit different you need to rely more on collaboration tool whereas with if it's like a small project within a company that just one or two people work on you can get away with a lot more so um you need to know about those processes basically and be comfortable with things like issues on GitHub pull requests knowing the git tool things like that and I think for open source packages that's even more important um right let's see Danny asks when doing an interview for a company how can I figure out if they're using best software practices and have good code quality in their code base well um you could just ask them right you could ask targets at questions about um what kind of process they they're using how what does that software development process look like and then of course you can listen to for things like are they doing code reviews do they actually think about those processes or is it just like I don't know the wild west and everybody just does random stuff I think typically a good indicator of code quality is is how well companies have established their processes and if they're very structured in their processes and the way that they they think about making changes to the code then chances are that the code base also looks pretty good at least that's been my experience um let's see yeah so thoughts on Rust and Python and rust that's uh something I will definitely look into that's an interesting topic uh France and Sons ask what's the key to finishing free time projects I have a folder full of shame I am not alone after one two weeks of intermittent works I just failed to continue with things yeah the you have to specify I think what your goal is with these free time projects I mean it's not by default a problem if you don't finish those things for example if your goal of a free time project is to learn a new programming language but and then when you learn that but you don't complete the particular project you were using to learn that program language and that's not a problem because your goal was to learn the programming language if your goal is really too complete a project then you also have to think about the next step so what are you going to do with it are you going to publish that somewhere are you going to build a business to I don't know make money of that thing that you built or what what is the goal of that thing or is it just an open source project um I think in all of those cases it helps to get other people involved also because they are going to provide you with feedback on the things that you're doing it's going to help you set deadlines for yourself because those other people might depend on you for developing that project but you also have to think about whether that's something you really want because the whole idea of of course these free time projects that they're supposed to be fun and that's free time and it needs to feel like something that you get energy from so that's the trade-off um let's see uh not a question by Danny in machine learning task assignment for job opportunity given a limited timeline would you invest more on the machine learning parts or showing your software engineering skills [Music] um I guess that depends on the the type of job that you're applying to I think if for example you're applying and and it also depends on on the team size that you're going to work in so if uh if a company is really looking for a machine learning engineer I think it's more important to show that you really have an in-depth understanding of everything surrounding machine learning and you worry less about software engineering you don't have to set it up perfectly also probably if you get an assignment it's going to be relatively small so if you spend a lot of time on software engineering and you know thinking about the perfect design for that small application it's it's probably not what what the interviewers are going to look at in detail but I do think there are some let's say low-hanging fruit things you can do of course when you supply codes it has it has to be like neatly written it can be a complete mess of spaghetti code so there's a couple of things you can do to achieve that that don't take too much time like making sure that things are split up into different functions adding type hints uh adding some comments and documentation to explain what the code is doing and why things like that so at least spent some time doing that kind of refactoring work but I wouldn't spend like hours and hours on that and only 10 minutes on solving the actual machine learning task then that's probably going to not give you the results that you want um is full of hidden gems are there any third-party packages you've been using for a while what problems do they solve um yeah so I've I've been using a few of those uh those things um but I don't think any uh really rare packages or something I'm now um I'm using hypothesis quite a bit I like that a lot it's a testing Library um I've been using um a pendulum lately for daytime and date util I think those work pretty well um another thing that I'm looking into now is I think that's Pi PDF it's called I'm not entirely sure um I'm basically building kind of as a fun side project a credentials system that can generate certificates and then you can share them on LinkedIn and those kind of things um for my online course I was actually looking into a few platforms that do that but they cost like 100 euros a month or something for something that well that's basically a database so I thought might be fun to actually develop that myself so um yeah so I other than that I'm not not really uh using lots of exotic packages that I can think of off the top of my head Damian good evening from Poland so great that you joined and let's see a few uh other questions uh some to scroll down a bit more uh Diego from dodrechts hey there that's like pretty close to where I live well not from Netherlands perspective but from Europe perspective um what do you think about the rest framework why do you choose fast API I like Fast API because it integrates well with pedantic and I feel like it's to me it feels like a very natural and quick way to define a restful apis um let's see Johannes I was wondering about what your thoughts are about code generation always bad great for apis I haven't used a code generation myself a lot to be honest um I mean it can definitely be helpful if you know you design your API and then generate the code so you don't have to worry about that aspect um so I don't think that's always bad I think code generation can help save you time and if it helps save you time that's a good thing anyway code always changes and you probably also always going to throw away at least half of the code off as you've written it because you're changing it anyway so if that code is generated well that just saves you a bunch of time so why not uh Damien do you use Redux to manipulate a state of your front-end app no I think redox adds way too much boilerplates I really don't like using it we use graphql and actually a lot of the need for Redux disappears if you're using graphql especially if you're using something like Apollo client um now I know there are there are more recent developments like react query that are a lot faster than something like Apollo we haven't made that switch yet I think we will ultimately make that switch but for the moment uh Apollo surface well in that it maintains local cash and things like that so you can basically deal with state in Apollo you don't need something uh complex like uh Redux that also introduces a lot of boilerplates um let's see yeah Asha your opinion on using an Oram or a raw SQL to interact with the database in the back ends I'm kind of on the fence of using or amps actually I I find that one of the nice things about SQL the whole idea of SQL is that you have a unified language of querying data and that it allows you to create all kinds of complex queries and with orms well depending on the orm framework you're using the syntax is going to be different the interface is going to be different so you are throwing away a lot of that generality by leaving a sequel behind now of course it also depends on the type of database you're using if you're using something if you're using a nosql database then obviously well you can't use SQL so in that sense SQL is also you can consider it as less Universal actually because it doesn't cover all the different types of databases but well neither do over amps actually um I like a kind of intermediate option I use connects GFS a lot in JavaScript which is really a query Builder so that stays in the domain of queries and dealing with queries and not so much creating actual objects and you can of course still use SQL in something like next but it doesn't go full on or Ram so that's kind of what I like using lately right CGA I'm a long-term follower thank you for your software architecture videos to help me a lot I have a clear view of my own code and how I program your most welcome I'm glad you are a long time follower um Tito asks do you use clean architecture at all in your professional projects and what are your thoughts about it what I've noticed is that especially in in the in in the in my own projects is that often the architecture is dictated by the framework that you use so if you're using uh well like Django for example or if you're using react which well it's not a framework it's a library or refusal maybe nexius is a better example those Frameworks basically dictates the kind of architecture that you should follow and that means that on the architectural level over the last years you see that we get less and less choice and of course those Frameworks they build on a lot of those principles from clean architecture like that things are layered Etc but um I feel like um later it's occurring less and less that we're really setting up our own architecture from scratch it's often the framework that we're using that dictates the uh the architecture that you use so then you just pick a framework that you like and then you follow that architecture [Music] um let's see uh 70 Mali asks I have a problem with implementing what you've learned so you've read about data classes or other new things but then in your project you don't know how to apply it yeah so in my videos I try to find a a good happy medium between something that still explains the concepts but that's also practically applicable that's not always easy I find um and myself I also learn all the time new things about how those different things work like why you mentioned data classes for example so I'm also learning while I'm actually doing these videos in what kind of cases I want to use data classes and one I don't want to use them and so getting that hands-on experience is really important so applying those things I'd say don't Focus too much on trying to put all of those that new information in in your code if if you're not yet comfortable with it but take it step by step and try one thing see how it works play around with it a bit and refactor things and see if it's better with or without that new thing that you learn and take it one step at a time um David can you do video about infrastructure related things with python for example git action plus full cicd example deployment uh Etc uh yes I can actually I record the video about that and that's coming out soon where I'm showing you how to take a simple python API deployed to the cloud using a CI CD pipeline so that's coming um all right a question by uh John I spent I was trying to understand everything I need to make projects installable package would be it's only great for any light you could share on this topic yeah so uh dealing with packages publishing packages that all depends on also the type of uh development environment you're doing that in whether that's for a node.js or for python where of course python you have Pip and with node.js you have the the node.js package manager so um it is sort of hard that like you write to um to to keep up to date with those things because well the the way that you package things and uh publish things changes that's definitely true I'd say take a look at poetry because that covers a lot of those uh things and then there's a couple of tutorials online about poetry as well I should probably do a poetry tutorial on my uh on my YouTube channel um all right then let's see um let's see uh Mamadou asks I want to hear your thoughts on approaching pythonous from the Developers I have tried multiple times to Learn Python but no luck thank you yeah python is quite a big change if you're coming from I don't know typescript or JavaScript or something it's quite different also quite different way of working in in the beginning for me python was very frustrating I was very annoyed by the thing that indentation has meaning I've since come to accept that reality and now I'm sort of used to it and I start to like it um because it also leads to a lot shorter code but when you're working on multiple programming languages and you're learning and you do those things at the same time expect some conflicts and confusion I think especially in my earlier videos on the YouTube channel I was still really in the middle of doing lots and lots of typescript and JavaScript work and I was still putting like semicolons behind lines of python code and things like that so it took me some time to get rid of those things um so uh yeah you you have to uh kind of take take that one step at a time and uh also treat python very differently from the way that you write your phones and code it's really a different type of framework and you have to learn the way that python those things and that's different from typescript okay uh Neo Emirates higher and what are the top three books that helps you most in your approach to software engineering yeah so both uh clean code and clean architecture by Robert Martin I liked a lot um so those I'd say are definitely two of the top three books and there's also another book that I found really interesting um uh let me look up the title um because um I just come to Google something quickly yeah that's a book called uh by uh actually Dutch Professor uh Philly Philly and the Herman said the book is called the programmer's brain and this is really interesting the program is brain uh subtitle what every programmer needs to know about cognition and why this book is so interesting is because it talks about how your brain works how you read and how you understand cold and how you can use the way that your brain works to become better at uh at chunking information and at looking at code so I really recommend the programmer's brain as well those will be my top three for the moment Pedro asks what cases you don't use data classes I use it in everything yeah that's kind of happens I also use them quite a lot I think part of the reason why I like to use data Class A lot is that they just make it way easier to Define instance variables I mean I really don't like the way that it works by default in Python that in the initialize you have to write self dot blah equals something self dot whatever Etc anything data classes are a nice solution to that issue and that they allow you just to find the fields at the top of the class and you also provide the type information which to me looks really thin it's really much easier to see in a at a glance what kind of data is stored in class so as soon as I have a class where I have like more than one or two of those fields I always tend to use data classes even though that class might not be a particular data oriented class I still find it provides me with more clarity [Music] um eight on us what are your thoughts about uh common and scrum are there some general tips for how to defy tasks between team members yeah so we're at the company pretty small uh development team so we keep things pretty flexible um we tend to not follow things like scrum too strictly that there are definitely ideas from uh scrum that are useful like um having the idea of Sprints to work on a particular topic and basically the time boxing those things um so I do things let's say from a project perspective I think scrum is good because it means you can Define some scope you can define a road map and Define Sprints where you know you're going to work on those specific things now I'm less and less convinced that every Sprint also means exactly one release so if you're really following an approach of let's say continuous deployment where basically every time you work on the code that's almost actually every time also released to the customers but you use other mechanisms to not open up the code to customers for example by introducing things like feature Flags so for me that kind of approach works really well and in my company we're moving more and more in that direction because releases are especially if they're bigger release they tend to be stressful and separating deployments from actually opening up a feature to your customers leads to a lot stress because if you have a feature flag mechanism you can also easily switch it off you can open up a feature step by step to your customer base so then it's a lot less stressful so I do think scrum and the whole idea of Sprints Etc is also from a project perspective and setting goals and making sure that things are time boxed and that you're not spending way too much time on a new feature teachers but that you can also speed up the work a bit but I I wouldn't recommend anymore to have one release at the end of each Sprint but follow more continuous deployment approach and then the second part of your question is more about how to divide us within team members so there depends on what you want to achieve of course I like to when I work with let's say slightly larger teams I also like to create opportunities for people to learn new things so I will not always assigned a job that one that I know one person is going to be good at to that particular person would also let other developers get experience because that also leads to some redundancy in your team and that's good because that means if uh somebody is gone for a while you know maybe they're ill or they're taking some leave or whatever that you're not immediately in a big problem uh right uh Goron any plans on making a series where you build an app from scratch so we can see how you connect all the concepts you teach on this channel um yeah I have some ideas of uh doing series like um I I'd like to do a series where I build an API from scratch I think that could be a nice series to explore and another series I'm thinking about is uh actually building a game in Python uh with probably 2D animated Game or something then that could also be fun but I will probably not publish that as separate YouTube videos because on YouTube doing series simply doesn't work I tried this a couple of times but basically YouTube views really views videos as like isolated things and if you break with that standard then basically it has a very bad effect on on how much YouTube promotes your channel and things like that so that doesn't really work so I will probably um I don't know maybe release that on a platform that's more oriented towards uh series structures like for example skillshare so um yeah that's what I'm thinking about uh Jared is it true that the only way to get Fair pay raises is to change companies every few years well it definitely helps if you do that um basically if you look at your situation in a particular company and you want to get a pay raise well generally you're not going to get more than I don't know 10 or something I mean more than that would be kind of strange right so that means if let's say you try to negotiate that uh once a year which is already uh quite often it means that there's like this upper limit of what you can achieve as soon as you switch to another company that upper limits doesn't exist anymore so I I do think that's definitely truth to that yeah all right um um let's see uh hi arjon would you ever make a video about various python implementations like C python J python Pi Pi stackless um yeah that's a good topic actually I haven't uh really considered that but that could definitely be interesting are you participating in advance of code this year uh no unfortunately not now one of the things I really notice is that because I'm currently kind of juggling two companies I very little time at the moment to join a lot of conferences I do like to do that maybe a bit more next year so um let's see how that goes all right okay one more question in the as a response to the community post what does it mean to be a senior engineer that's actually a very good question [Music] um so senior engineer means different things to different companies obviously there's no fixed definition of okay now you're a senior engineer and now you're a junior engineer but typically I'd say that um a more senior engineer has a wider Horizon and considers problem on a wider base than a junior engineer typically does so Junior engineer somebody that you can assign to do a very specific project and you also probably also have to be quite precise about the type of work that they're going to do whereas a senior engineer you can provide with more responsibility and let them come up with a solution on their own give them a bit more freedom especially more related to software design Junior Engineers don't really think a lot in terms of software design and how what they're doing affects other areas of the code that they're working on so so to me that's a big difference between a junior and a senior engineer another thing that some companies also make a distinction is whether you have some let's say leadership or a supervisory tasks though companies also call that the lead engineer if you have more of a management role but senior engineer will also do things like supervised intern supervise more junior team members maybe be more directly involved with the customers and other stakeholders in your company things like that so more of those management level type of things and if you want to prepare for a job yeah and and you are doing interviews for senior Engineers that's also slightly different than for junior Engineers now I did a video about that recently where um well basically you know if you look on Google if you look up information about a how should I prepare for a developer interview you get all kinds of coding questions and quizzes and things like that and that's with the senior engineer job that's less important it's more the communication and people aspects that start to play a role and not so much whether you're able to sort or find an element in a binary tree or something all right question by cute not I'm a beginner with programmer what's the best way to start working on a program often I don't know where to begin yeah so um try to yeah I've sort of said before that when you start working on a program well don't just start writing code right away you know you first need to understand what kind of problem you're trying to solve actually so you need to understand that first before you start coding things but it's also important to if you want to work quickly at least to have a quick understanding of the risks that are involved and what are the main things that could potentially have a big impact on the way that you set up your code and most often that's related to the third party services that you're using like if you're using a database provider or if using a cloud provider or if you're using a library for a user interface and things like that so all of those things have a big influence on how you're going to set up your code and how things are going to interact and it's really important to understand how that works before you start building more complex app application so the first thing I often do is get a feeling of okay what kind of Technologies am I going to need to solve this problem and when I patch up those Technologies is that actually going to work and are the severe limitations and workarounds that I need to know about so that's normally where I start and when I have that risk covered then you can start iterating and adding more complexity and actually building out the features that you want to build um let's see uh uh do you watch the FIFA World Cup uh no I don't watch the FIFA World Cup um I could if I'm fully honest uh it simply doesn't really interest me I think there's also like a um a principal aspect to it I I'm not sure how um you know how common that is mentioned in the media all around the world but in Netherlands there is like a big story about uh Qatar and human rights and things like that and there's quite a few people in Netherlands that really don't want to watch the uh World Cup because of that reason now uh for me that's easy to say I simply don't watch because I'm not that interested in it but of course I also find human rights importance but I would be lying if I would say like hey I don't watch this because uh I'm in principle Against the World Cup being held in Qatar because well I simply don't watch it because I'm not that interested in it um so even says my physics Professor would always say shut up and calculate sometimes makes sense to just get something down to help ideas flow if you feel stuck before starting yeah so kind of the idea of exploring those technologies that you're going to use is is quite similar to that you simply try to patch up things and see where that takes you and that's often a good starting point uh monolith do you think it's better to plan use of design patterns in advance or to apply them during refactoring what works best for me is actually applying them during refactoring because I noticed that while I'm writing the code it also helps me understand better how things are related now before I start actually writing I do try to have a rough idea of what the concepts are how they're related what kind of overall setup I'm going to need and that's probably where I'm going to start I don't really think too specifically about design patterns still but then I think where the real quality and code comes is actually take the time to take that first version and actually do those refactorings that makes a big difference it's like what people say about writing books right that you are writing is basically deleting most of the things that you've written and with writing code this is actually quite similar I find um eita asked how do you get out of the experience trap where every job on the market expects you to have some level of experience and you are a fresh University graduate with no level of experience yeah so I'd say the way that it works in companies I mean on some level companies want you to have lots of experience and this and that and that but when push comes to shove and you can show that you are a smart person and that you're able to learn quickly I think companies will have no trouble giving me of offering you a job because it's not really about the specific experience that's it's generally not that important it's way more important that you have the right learning mindset and if a company understands that and you can show that you have that mindset then you will have no trouble getting a job if a company doesn't understand that then that's probably also not a very good company to work for so does that um yeah so I think I'm going to close off for the night it's almost 10 p.m here so I want to thank you so much for your time tonight thank you very much for joining wish you a great evening uh it's going to be a couple of uh interesting videos in the coming weeks so uh uh I'll hope you join them and just post in the comments uh what you think of them um and uh thank you so much for watching for joining tonight wish you a great evening and talk to you soon bye bye
Info
Channel: ArjanCodes
Views: 4,451
Rating: undefined out of 5
Keywords:
Id: iA9JvMrEajI
Channel Id: undefined
Length: 110min 14sec (6614 seconds)
Published: Tue Dec 06 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.