Yesterday, an old friend of mine requested that i teach him javascript, without him having any pre-requisite knowledge of computer programming. I decided to throw at him a couple of video tutorials and programming books, but he rejected them saying he wanted me to walk him through the learning process till he has learnt enough to carry on.
With some reluctance, i took the challenge and here i am, confused! I've never thought about teaching a total newbie programming. I myself never had a one-on-one programming teacher. I'm confused! I'm confused because i don't know where to start from, what path to follow in his learning journey. I have questions like "should i start with data types?" or "should i introduce him to github first?" or maybe we should just discuss about programming in general. Then what next???
So @ben and @jess and all developers with experience as tutors to newbies, help me out here. What is the right learning path for an absolute beginner?
Thanks.
Top comments (7)
For me, don't start with JavaScript at all. Briefly tackle HTML and CSS. Upon having prior knowledge of those two languages, there will be a reason to learn JavaScript and more. Having a direct way of applying newfound knowledge is the best way to learn. I believe that HTML and CSS does that job well as a way to complement in learning JavaScript.
Then once comfortable with browser JavaScript, only then will you introduce Node.js to your pupil. After that, you can introduce Git and GitHub (because of the open-source nature of NPM modules).
As for the individual topics to learn about JavaScript, focus on Ground Zero (not necessarily in order):
return
means)if
,else if
, andelse
)while
first, thenfor
)new
keywordmap
,filter
, andreduce
)I think that's enough of a curriculum to get started with for now. Just a disclaimer, I am not guaranteeing absolute results.
Good luck! I hope your pupil learns well.
This looks really helpful, Thanks.
I got you, bro. 😉
If I know anything about teaching, it's that you should be patient with your students. Always put yourself in their shoes. Explain the topics like how you would have wanted to be taught.
I would say having a small project/goal, that a newcomer would personally be motivated for. Goes a long way.
Each of the project, would only focus on one small item in the stack, with possibly the rest being the bare minimum to execute.
This would also give the sense of accomplishment from each project, as they grow in complexity. Giving them the much needed motivation for the next learning project. And more importantly the skills needed to google solutions and perform self-learning.
Learning to be a developer after all can be extremely frustrating. Where persistence and motivation beats out any particular tech stack or path.
So if the developer-to-be is more visual or into blockbuster games, perhaps starting off at unity might incrementally make it fun or exciting, with each mini game level. Even modding games like gary-mods could be a start.
If the developer-to-be is a math enthusiast. Perhaps python with datasets would be more interesting.
If the developer-to-be is a designer, perhaps HTML and CSS, with a sprinkle of jQuery for animation (to keep the JS minimal).
Probably one of the worse ways to start learning programming in my opinion, is by teaching C++ pointers (which horrifyingly is an incredibly common starting goto, for many school courses).
Especially seeing as its nearly impossible for me to explain "how is this useful/important" to an absolute beginner.
C++ Pointers, LOL. Working on a small project will definitely interest him. Thanks for your insight.
I would ask you to first figure what the interest of this student is, work towards that, build the students interest around concepts used toward achieving this fantasy of theirs
Odogwu! Thanks