Having trained thousands of people, I’ve read hundreds of online complaints from remote hobbyists who live far away and “can’t attend”.
I’m always baffled by kids who only imagine a training in Google (or another large corp) with a personal mentor on-site, a well-defined training program tailored to their taste, a team of other hobbyists at their level (or even lower) to pace together.
Companies don’t dream to invest five or six figures in complete newbies over the course of a year before some of them can become productive.
Back in the day, we were downloading .TXT tutorials on floppy disks, printing “hard to find” books due to our limited online access, and spending weeks banging our heads against the help pages of DOS-driven IDEs.
And now, we have YouTube, Udemy, tons of blogs and free books, Stack Overflow, GitHub… Most of the engineers I’ve worked with are self-taught. It’s all about motivation and hustle. Not limited to engineering, either.
00:00:16 – Why Some People Complain About Onsite Learning
00:01:29 – Communication and Collaboration = Teamwork
00:01:58 – Finding Resources Then and Now
00:05:42 – Different Online Resources
00:06:22 – The Most Important Thing
00:07:16 – What You Really Need to Do
Can you become a successful web developer if you don’t get a chance to become a part of a team and work in an office with other developers on site and basically be a member of an existing kind of organization and make a team – a team of software engineers?
Why Some People Complain About On-Site Learning
This is a question I get quite a lot and as a trainer, I also tend to teach some courses that tend to record training videos online and also organize some workshops and lab exercises and others onsite in order to help people to bond together and work alike instead of just learning the curriculum from the Internet. And of course, some people complain about it.
They say, “I live very far away. I can’t really attend all the exercises.” So, they kind of start ranting against being unable to be a part of the team and how unfair it is and things like that. Now apparently, this is a poor excuse if you’re about to start becoming a professional in that specific industry and in any industry for that matter, now I completely understand that most of the software engineering happens as a part of a team, as a part of a collaborative environment.
Communication and Collaboration Equals Teamwork
This is why communication is also important. This why we stress so much on teamwork and collaboration and version control and some other activities simply because they are part of something bigger of the collaborative effort that goes into building a complex software product or delivering services or anything that’s kind of related to software engineering.
And now, I want to really stress out the importance of teamwork whenever that’s possible. And, probably, you are going to become a part of a software engineering team sooner or later even if, let’s say, you live in a city where your location doesn’t really allow you to work in a team, you can’t travel 200 miles every single day just to commute to your job or anything else. But, that doesn’t really mean that you can’t learn software engineering by yourself.
And, the reason I want to mention that is that back in the day, we simply didn’t have the opportunities to study software engineering by going to boot camps or going to some training courses or things like that. And again, I also know people who have started develop and 20 years before I did and this was really a lot of irony. Really a lot of trying to figure things out in themselves, simply because no university were teaching this or there were pretty much no opportunities for training on site.
To Be a Successful Web Developer Back in the Day
Back when I started which was about 20 years ago, give or take. When I started, we were trying to look for any type of all our websites, just giving any types of tips on be it software engineering or web development operating systems networks and so on.
And, the internet wasn’t that popular back then either so most of the time, we spent the time in computer records and the internet cafes and some other places trying to find some of those websites and then bringing floppy disks. And, trying to download these as HTML dog files or even sometimes, take stuff out if they were large enough so they couldn’t fit into a floppy disk or two.
So we just had to take this information one way or another. There was no stack overflow or I don’t know, any types of groups and online courses. Basically, video online wasn’t really a thing because the Internet was 56 cubit per second modems which were taken about 25 minutes to download an mp3 file. Right? So again, we are talking about a where this information was probably one-thousandth of what is currently available online. Yet we were able to find it one way or another from some places and also spending a lot of time on actually trying to build software ourselves at home until late at night and reading some complex computer science books and everything else that we found.
On Finding Resources Then and Now
I remember, again, that was around this period about nearly 20 years ago I remembered and found the C++ book by the Bjarne Stroustrup and we found someone who had a copy and this wasn’t something that was sold locally.
So, we basically had to go to a Xerox and make manual copies for each of us which was something like this even though the book was this fat. I know this is not the best solution whatsoever, but again information was very scarce. It was very hard to find it. And that’s why we had to find some collaborative efforts to make it work.
Also, when we were studying say, two basic course of Delphi, we were reading 100% of the documentation and trying to work out every single function, every single command, every single procedure, everything that was available in the help, was there for us to help and we didn’t really have enough resources to help out otherwise.
So, what I’m trying to say is back in the day, it was ten dozens, probably hundreds of five more complicated to actually study software engineering. And what people have nowadays is the ability to just, I don’t know, travel to work and be able to play YouTube videos or Udemy videos or something else on their phones and even being able to actually program on their phones because phones are that powerful right now.
The one I’m recording with has a chorus and 8 gigabytes of RAM. It’s like more powerful than my previous laptop. So, and still that sort of ability, that sort of capability is something that you really need to recognize. Same goes for the types of software engineering platforms and frameworks and programming languages and everything else that you can pick from.
Different Online Resources
Because even if you have scarce resources on one thing, you can probably find Java resources for programming for the Android platform. You have Google pretty much presenting you complete tutorials from start to finish for a usable application. Again, you have Stack Overflow. You have GitHub and GitHub is completely powerful repository tens of millions of applications that you can download and run and read their code and also read through Commits and backlog conversion, pretty much everything that we didn’t have a long time ago.
So, there’s literally no excuse to not start working yourself and start developing your skills from scratch.
One of the Biggest Misconceptions
Now, the most important thing is that most people struggling with learning upon themselves. What they tried to do is they start with the syntax and expect that when they learn the dozens of keywords and just be able to say, create a function, create a class, they’re pretty much ready to go. And now that’s one of the biggest misconceptions that I found in software engineering simply because it’s like knowing the letters of an alphabet and expecting to have a fluent conversation with legal teams in the counting case.
I speak fairly well English and they really can’t find myself in decent gourmet restaurants simply because I have no idea what all of those ingredients are. I can’t pronounce them and I don’t know what they look like. And how about, for example, if you don’t know Arabic or Russian or something like that, just adding the alphabet and then be able to just have fluent conversations, right? It doesn’t make sense at all.
What You Really Need to Do
So that’s why just learning the syntax of a programming language pretty much means nothing. What you really need to do is start solving business problems. That’s the most important thing. Now, computer programming in the first place is designed to solve problems that humans face on a day to day by ultimatum then by sifting through the inserting records maintaining archives things like that. So what you again need to do is realize what does an actual business case require, how to build a corresponding application that solves all those business cases.
For instance, if you have, one of the standard cases that most kinds of courses study and teach is actually a library application. So you need to consider what does a library look like, what would a librarian need to do, how would books be received. And then, design the corresponding say, database layer, a software desktop application that sits there, probably an online archive like a book collection, everything like this and just start small, start with one piece, start with the book component, book object, book class, and expand from there.
Start Solving More Problems
Once you learn this, once you actually build a couple of useful applications, it would be much easier for you to apply the corresponding design patterns. Start solving more and more and more business problems through programming instead of just focusing on the syntax or instead of just expecting someone at work to mentor you, and coach you and train you. And, actually spend all their time as a software engineer, probably, with a senior who’s teaching you, who’s actually on the payroll and who’s actually being paid to work on an actual application.
So again, teamwork is important. Communication is important. Collaboration is important, but that doesn’t mean by any means that you can do this, all that yourself, because you have tons of different resources, you have the internet, you have free materials, you have cheap online courses, and you can take it and start building some applications from yourself.
Build several applications with tutorials then start to build some pet project of your own and take it from there. Sure, it’s going to take a lot of time. It’s probably going to be annoying, but this is one of the best ways to start debugging and kind of stumbling and form problems, trying to understand them, solve them, and take it to the next level with your newly acquired knowledge about this.