DEV Community

Pavol Rajzak
Pavol Rajzak

Posted on • Updated on

Preparing a course for junior developers

So, we have decided to create a course for junior developers that would go on for several weeks. The point is to introduce them to newest technologies that are used on real projects and show them the best practices in software engineering. While previously I had several presentations and short-term workshops, I am still a bit struggling about how to conduct it so that it will bring value to the participants.

I have identified several things like:

  • prepare all prerequisites (environment, materials, Git repository)
  • work with smaller groups (or have additional help with overcoming impediments)
  • don't over-flood people with information
  • if possible select participants (so that everyone starts on the same level)
  • be friendly, try to motivate instead of just stating facts

Anyhow, I would like to start a discussion on what you think are the key points for successful course. If you have any tips to share, please don't hesitate ;).

Top comments (6)

Collapse
 
marcussk profile image
Marek Beňo

What I would like to hear in such course would be some introductory non-technology specific programming paradigms like OOP and functional programming and architectural designs. When explained on real demo application showing what you can achieve with these things and why is it important would be really helpful.

Nowadays there are lot of "articles or tutorials" but having broader perspective and understanding of design decisions is hard to learn. Knowing these things from the start is a plus because understanding of more complex projects is lot easier.

Collapse
 
rapasoft profile image
Pavol Rajzak

Thanks for your thoughts! This is exactly what are we planning in the upcoming course, e.g. take some problem, go incrementally from naive solutions up to using frameworks and explain design patterns and their implementation (for instance dependency injection and how it is used in Spring framework).

Collapse
 
ben profile image
Ben Halpern

The point is to introduce them to newest technologies that are used on real projects and show them the best practices in software engineering.

Could you elaborate on what you mean by this? It's kind of vague.

Collapse
 
rapasoft profile image
Pavol Rajzak

Ah, yes, sorry for that, I was trying to avoid specifics to keep the discussion focused on having a tech-courses in general.

But to be less vague: the point of such a course would be to give someone that is learning a programming language (for instance Java) a direction. There would be a specific topic (in our case a backend for web application), with specific frameworks and also design patterns explained on specific examples.

The emphasis is on best practices, since there are many outdated articles or tutorials on the web that a self-learner can read, but he will just waste time on those.

Is it a bit clearer?

Collapse
 
b_wiesacher profile image
Matthias Tietz • Edited

First - i really enjoy and appreciate your articles, your work and time you offer for the Community.

Since i am a beginner-level dev myself i am very interested in such a nice course :) How do you want to conduct this course? Only online via a Webpage or sth. similiar? (You wrote "Work with smaller groups" ... I was not quite Sure, how these group(s) should parcitipate)

Maybe some kind of Communication Tool would be useful, where information can be presented and maybe also participants can talk to each other and learn together. (Forum, slack, discord etc.)

Collapse
 
rapasoft profile image
Pavol Rajzak

Hi! Yes, this is a common question - whether the course we plan is going to be streamed or available online.

Unfortunatelly we don't plan this yet and my previous experiences are not that good with this format. There's always either technical issue or some information is not transfered correctly (e.g. misunderstood) - and it is hard to mitigate this. At least for now. But I am planning to tackle this problem as well :)