(May 26, 2018 at 6:51 am)FlatAssembler Wrote:Quote:I ask because, in terms of web development, you're definitely not ready to do professional work.You are probably right. It's a bit depressing to think that most of that time I've spent trying to learn to program during those five years is wasted. Hanging out with girls would probably have been more fun way to spend my free time than studying algorithms and data structures. But I was so enthralled by those stories of people making a lot of money with their knowledge of programming.
There's nothing wrong with having a social life, but here's the thing - the people getting rich programming are either people who had an idea that completely disrupted the industry (see: Zuckerberg), or they're people who got their degree(s), and really paid their dues both in terms of school work and real work (internships, university programming projects, etc.). Most programmers are 9-5 types, who work on projects they're not interested in or passionate about.
When I look at your code, I see a talented amateur. I think you could make a living with programming, but you really need to figure out what kind of programming you want to do. Desktop apps are different than mobile apps, which are different than web apps, which is different than AI/machine learning, which is different than, say, programming sensors (think: automobiles, rockets (SpaceX rockets are completely computer controlled), etc.). While there's definitely some overlap, there's also a lot of differences (web apps don't have persistent memory, sensor/hardware systems need to be fast, etc.).
In terms of web development, benny and I don't talk about putting CSS and JS in separate files, reducing repetition by using functions/methods, and generally writing code as elegant as possible because we're tut-tutting neckbeards who are trying to give a rookie a hard time. These things we keep harping on are the basic signs of someone at least trying to write professional web code. Unless you're a 100% solo developer (which is rare), programming is a collaborative endeavor. So writing readable code that can be easily followed/understood by others, while also being easy to maintain/edit/debug/extend is an important secondary goal. Solving the problem at hand comes first, obviously, and everyone has had to write an ugly kludge with deadlines looming, but when possible, do it right.
And even if you don't ever work with another developer for the rest of your life, chances are you'll need to revisit old code you wrote years earlier. I can't tell you how many times I had to look at old code and went "WTF was this supposed to do? And WTF was I thinking when I wrote this POS?" There's no good reason not to make life easier for yourself from the start. You wind up wasting more time in the long run if you don't at least try to do it right the first time.
Also, code reviews are a common part of most job interviews. So, yeah, it's kinda a big deal. And we keep harping on it so you can grasp how important it actually is. It's the kind of real world thing that "gotta do it fast!" competitions completely ignore, to the detriment of the competitor.