I myself am I junior developer but throughout my 3 years journey so far, I've had the opportunity to work with some of the greatest minds. They helped me learn programming, work etiquettes and a lot of other stuff and for that, I am really thankful to them. At work, I help junior developers/internees learn basic front-end stuff.
When I started learning, I had the best teachers. I was instructed to learn the basics first and then go on to learn frameworks. I started with basic HTML & CSS, learned a bit of JavaScript and then moved to learn Bootstrap. After that, I moved onto Foundation and then material design. Right now, I don't do much of UI work but I know a good amount of best UI frameworks available. But I didn't do it in one night (obviously).
It took me time. Nights and days and weekends. A lot of them. Just like most beginners, I was eager to learn all at once. But soon realized that this is not how it works (thanks to wonderful mentors and clients).
This is the same thing I want to teach the guys who chose me as a mentor. I try my best to explain everything with a proper and valid reference. I have told every guy I taught that learning something is not the same for everyone. Someone might learn a whole new framework over a weekend but others might take a month or even two. But most of the beginners don't seem to take my advice seriously.
Recently, I told a guy not to use Bootstrap, in the very first assignment I gave him. And he replied:
I saw you using Bootstrap. Why shouldn't I use Bootstrap too?
I told him to learn CSS first but he insisted on using Bootstrap and eventually ran off 🙁. And the same thing happened to another colleague who was helping another internee.
What I want to ask is:
How do I convince a beginner to learn basic stuff first?
...without having them think that I am being an obstacle in their path?
Top comments (15)
Keep in mind that, as you say, not everybody learns in the same way.
I learned Bootstrap before I learned CSS, and now I usually skip CSS frameworks and write my own styles from scratch. For me it was easier to learn by overriding and building on top of Bootstrap components than writing everything from scratch.
One must eventually learn to do things without frameworks, but I don't think it's that important that it is always the first thing one learns.
That is right. I just started my first job as a full-time developer and I am learning a lot of CSS/JS because of Bootstrap and AngularJS.
Yes, and we don't need to invite the wheel as well.
This actually makes sense. Thank you for clearing it out :)
Having a good understanding of the basics is always important.
As a junior you want to quickly see a working page of the project, even if that means going over importing steps and not knowing why it works.
I have mentored many new devs at work and what I found over the years that they best relate to a more personal project. Even if it is something small in scale, most of them are proud when they achieve something using their own Css or Js snippet, although the same functionality can be put together by slapping a couple of libraries on the page.
This however is tied to how passionate you are for webdev. Like you said, skills and experience are gained by many hours, weekends or nights. For most of them this is not the case and if I spot that, then I will only teach the necessary skills for their job.
But once in a while one junior will stand out from the rest. Take that one to interviews and let them see that even for mid or senior positions, if you don't pass the basics questions about the tech then you are out of the race before the start. Or send them to interviews to find out for their own.
Might not apply to all cases, but this has been my experience so far.
True, there is little better than seeing your code working and in action in real life! No matter how small...
This is a good idea. I'll definitely keep it in mind. Thanks.
Unless the know the basics they won't know why particular framework is good or bad for the task in hand.
When I started building web apps I had little idea of the capabilities or risks in different approaches. There was just too much info. And not enough appreciation on my part about what web apps really are. Still learning of course!
So I stuck with the simple as a way of avoiding unknown pitfalls. People often asked why I wasn't using X, y or z.
Now I feel I'm starting to know enough about how to decide what approach works for me and how to select between X, y and z.
Not really an answer, but where do you draw the line?
Bootstrap -> CSS -> Web Server -> HTTP Protocol -> TCP/IP -> Networking -> OS Kernels -> Chip Design.
Obviously the above is a silly example, but at each stage of those you could argue the next level up is "the basics." The trick is to determine just how much of the basics do you really need to know to do what you need to do? Is it important that people know all the CSS tags and which ones work in what browsers? Or is it enough to have a general idea of "how" CSS works and understand that Bootstrap builds on top of it?
The problem of course is if they have no understanding of CSS and they get stuck in Bootstrap they are well and truly stuck.
Perhaps in this case you could encourage them to pick a Bootstrap component and dissect it to it's core to see how it's put together and what makes it tick. Maybe.
It's an interesting problem for sure.
You don't. You let them figure it out themselves. If you're being pushy they will not do it faster. They need a situation where they think "if I knew how the browser sent out this request, I would have had the solution much quicker" and then they go figure it out.
Yes. That is correct. But I try not to be pushy but be helpful as much as I can and explain how things work. But when someone says I don't know how to center a text vertically, I just used this class and it works fine! I think then you need to explain to them that they should know what that class actually does. Right?
Don’t. Have them make something first. Then, gain a deeper understanding.
The fundamentals will always be there, waiting to be discovered. If they make something first, they’ll be all the more interested in figuring out how it works and how they can make it better.
I think it was a lot easier to start with the basics not too long ago because that is all there really was. When I was learning, I was quite proud of my atrocious looking website. I think starting from nothing but classic CSS these days does not have the impact that it once did, especially with all the well-designed websites out there. Bootstrap gets you a lot of easy-wins in terms of looks and ease of use, so I can see why beginners will reach for it.
I don't think you can force them to learn it, but you can continue being a good mentor to beginners. I am a firm believer that having good fundamentals transcends the hot new framework. CSS will always be CSS, whether in its basic form, in Bootstrap, or CSS in JS. I think there will come a time when a beginner is not able to solve a problem with Bootstrap and they might struggle. They might reach out for help or they may learn an aspect of CSS that they did not know before. It will just take time for them to gain more experience.
Well... you can look at their motivation for learning certain stuff.
Ask them questions on what do they plan to accomplish on using that particular technology and ask them questions in a tactful manner on what are the prerequisite to make this work.
Instead of giving them a solution directly, I think that letting them look at what is needed so that they can answer their own questions is the best.
Since you may not have the best answers so by encouraging them to search for themselves can be a good thing as they help you to grow as well through this type of interaction.
Understandably most people just want to see quick results and frameworks offer that kind of thing. Tiny projects that focus on the basics of web technology can be helpful at least they were for me.