In topic Learning Django road-map, @KenWhitesell suggested learning Django with access to in-person training / mentorship is, in his opinion, far more effective than just working through written examples.
I’m currently self-learning Django and using books, tutorials, Django documentation and slowly trying to build my own projects.
Do you think in-person training / mentorship can be much more effective than what I’m doing now (or in addition to what I’m doing)? Why or why not?
How would you recommend finding a mentor?
Does it make sense to find a face-to-face mentor or a remote mentor (recognizing that the remote option exponentially increases the number of potential options)?
Everyone’s time is valuable. What’s in it for the mentor? What do they get out of the mentor / mentee relationship?
If you specifically have had success working with a mentor to learn Django, I’d love to hear about your process and experience.
Any input / feedback on this topic would be greatly appreciated.
I think it depends on how quickly you want to get familiar with the framework. Are you using Django for personal use or is it required for your employer?
Finding a mentor may be difficult because, as you stated in an undermentioned bullet, everyone’s time is valuable. If you go down the remote path, you should keep in mind that your mentor could live in a different time zone so finding a reasonable time for the two of you could be challenging.
I think your learning style comes into play regarding this question. Would you prefer having someone standing up in a class teaching while you’re surrounded by peers with similar interests or would you prefer true 1-1 interaction with no distractions?
Being a mentor can be a great learning opportunity in it of itself because you can truly test your knowledge of the framework and its underlying architecture.
I’ve never had a true “mentor”, but I have taken a number of online courses that range from beginner-level Django to rather intermediate development and those have shown to be extremely helpful for my particular use case.
Personally, I think it would be extremely beneficial for the official Django site to implement a mentor/mentee “finding” feature for developers. Users can apply to be mentors and others can search through mentors using criteria such as time zone, remote/in-person and availability.
I know some of my answers were somewhat vague, but that’s intentional to drive the discussion further
Adding to the conversation…
- If by “more effective”, you mean “faster” and “less likely to develop bad habits or patterns”, then yes. Working only through written text has a greater chance of you becoming stalled on a topic when you can’t find the answer to a particular question.
(Note: This is true even after you’ve become experienced. The difference is that the more experienced person is going to be more likely able to know what question to ask to get the desired answer. )
The written-only approach also creates the possibility that the person studying the subject can either misinterpret what they’re reading or draw some wrong conclusions, leading to the development of sub-optimal coding patterns.
- Regarding in-person training, your location is going to have a large effect on what’s available to you live. Beyond that, you might just want to search on line for people or companies that provide remote training. Most tend to have some introductory material available for you to preview, giving you an idea as to whether or not their style will work for you. (Sorry, I don’t have any specific recommendations to make.)
I consider “mentorship” as usually being available as part of a job - and that’s usually the distinction I make between those two categories.
Generally, I consider f2f to be preferred, however, in the current environment… Regardless of the mode, the key value obtained from live training is the availability of someone to answer questions as they arise and someone who will review your work and offer suggestions.
Different people have different reasons. Some see it as working to keep the pipeline flowing - people who may one day become the next set of contributors and mentors. Some do it to advance their own projects - they’ll mentor on a specific topic or project, with the expectation that the exercises and work being done adds to their own efforts. And as commented above, some people know that teaching a topic is one of the easiest ways to reinforce and expand your own knowledge of a topic. Reasons vary.
My primary Django mentors were two programmers I worked with a little more than 6 years ago. I got a job as a Django developer with zero Django experience. The two of them got me over the initial hump.
Personally, I think you’re going to have to admit that unless you can score a job as an absolute noob in Django, which is extremely unlikely, you will have to do most of the hard-yards yourself. Although I notice Ken scored a django job with zero experience. So I may well be wrong
This is my 2cents given how the job-market is generally trending - they always seem to want a shit load of skills to get in the door. Even if you got a job as a noob Django developer (highly unlikely), how many people can honestly say it was the type of company where they weren’t so busy cranking out code they had legit time for mentorship? You always seem to end up doing it yourself in my experience. Not to mention dealing with project managers who have never coded in their life with all this agile malarkey. (I’m pretty burned out at this stage, as you can probably tell, on the current corporate software development model) I could write a book on why agile stinks - but this isn’t the platform. Shuffling cards on trello boards <>>
The other option might be to find a local django group and connect with them - if that’s your type of thing, and you can do it (you might have other commitments or can’t be arsed joining a club). Even then you’re probably not going to get a mentor - just snippets of useful stuff at the coffee break.
Ideally, a good mentor, but realistically? Hard yards at the coal-face.
Pretty cynical at this point…
Ideally, a good mentor, but realistically? Hard yards at the coal-face.
While I don’t have experience of formal programming work (I turned a non-programming RA job into a programming job basically, but that’s a sidetrack), I’ve had a similar thought when I’ve seen this point come up on the forum. What’s ideal is one thing, what’s realistic or common is another.
It would be interesting to know what proportion of Django developers (or just developers in general) actually have gotten a significant amount of coaching before/as part of their first Django-related job or later on. I don’t think this question was in the survey they sent out recently. For developers in general, there is this Stack Overflow survey. Of professional developers, 43.6% say they “Received on-the-job training in software development”. That’s out of all professional developers, including those who might have been around for a while. So it seems that a minority of developers report having received at least what they perceive as “on-the-job training” (it’s possible of course that they received some kind of coaching from colleagues, but didn’t consider it “formal enough” to count). 16% say they “Participated in a full-time developer training program or bootcamp” (we can’t tell how great the overlap with the “received on-the-job training” is here). Of course, a survey done by Stack Overflow, without (I’m assuming) random sampling et c et c isn’t entirely representative, but I haven’t seen any better sources on this. Either way it seems to me like it’s probably fairly common for developers to do alright even without having received coaching.
Another relevant question is how great the difference between being coached or not really is. This will vary of course, both depending on things like the autonomy of the person learning, and the expertise or pedagogical skills of would-be coaches. But what might the difference be on average? Does coaching increase the chances of landing a great job within two years by 30%, or 10%? Obviously we’ll never have an exact answer for this. I just want to point out how it’s probably not very helpful to apply black-and-white thinking (“no coaching”->“bad code, bad jobs”, “coaching->good code, good jobs”), and it might be more fruitful instead to think of it in terms of potential gains and costs involved.
If someone has a choice between a job where they are given no opportunities for coaching or education paid by the employer, and one where there are, then obviously the latter is a better choice as it also implies the employer values its employees. I for one wouldn’t be too hung up about it, but then again I haven’t worked professionally with Django at all so take this with a fistful of salt.
Tip: People interested in this topic might find the Django Chat podcast episode " Resources & Mentorship" useful.
@anon36149362 Just to clarify something: Zero Django experience, yes. But by that time, more than 10 years Python experience mixed in with a fair chunk of Twisted Python, CherryPy, Zope, and raw network programming work. (Not counting about 6 years of work with Joomla and Drupal.) So the background was there, it was just the “Django mindset” needing to be built.
@jtmdk I think you’ve asked a great question. I’m in the same situation you’re in: self-learning using books, tutorials, Django docs, and building my own projects.
What I haven’t seen mentioned in this thread, though, is just pair programming. I suppose that with two people self-learning Django, this could be a bit like the blind leading the blind, but still I have a feeling that pair programming could add value to both even if neither of the pair is extremely experienced as a Django developer or mentor.
I’d be interested in doing pair programming in Django and python with anyone here. My time is pretty flexible, so just say the word.
@FordSubmariner In follow up to your comment about pair programming this short description / article might be interesting … https://www.recurse.com/manual#sec-pairing
@jtmdk I hadn’t previously known of RC. Thanks for posting. Are you at student at RC now? I may apply, but regardless of whether or not I’m accepted, I think any two people could find a way to do pair programming. Are you up for that?
I’m always ready to work on side projects with other people who enjoy using Django Just send me an IM if you have any ideas!
@jtmdk your Twitter settings allow only your followers to send you DM. Why pivot to Twitter?
For anyone who wants to do some pair programming with me, pass me your github username and I’ll make a repo for us all to use. I’m at https://github.com/wise-ksf
More to follow.
I’d also be interested in doing pair programming.
I have the beginnings of a django website, SqueezeMyLizard which I’m using to learn about Django.
I have a private git repository, and the site is currently hosted on pythonanywhere with a web dev account.
If anybody is keen to tinker and play around, give me a nudge, and I’ll add you as a contributor.
I’m a complete Django/Python noob but if you would like to contribute to a site which is live (although it isn’t much) you are more than welcome to.
I have no firm plans for the site, it’s basically a training ground for myself (and perhaps others). So if you would like to make contributions, I’m all ears.
Helps if you like Motorhead, as initially I was thinking about doing something related to them, but I’m open to all sorts of ideas. The more the better.
If a Django expert wants to get involved to nut out various things - cool. Otherwise it might be the blind leading the blind - and in the country of the blind the one-eyed man is king. Never the less, since it it doesn’t really matter on a site made to mess around with - we can work it out.
Get in touch.
Cool - what would you like to do? Also, what can you do? Either way, you’re more than welcome to contribute to my website.
If you’re looking for a mentor, though, you’re barking up the wrong tree, I’m a django/python noob. Although, things are progressing.
If you flick me an email, I’ll clue you in on what’s happening, presently.
Basically, it’s a blogging site/newspaper, which is under construction.
I’m currently neck-deep in my dynamic formset code, which is pretty much completed after much teeth-pulling.
Another thing in the pipeline, I’m going to convert www.umsiko.co.nz to Django. Again, you’re more than welcome to get involved in that, too.
I’ll be in touch. Not today. But I’ll send you an email over the weekend.
With all due respect, this is not the first time I’ve seen you start problems on this forum for next to no reason. There are many people on this forum who have shown you nothing but respect by answering your questions on a daily basis.
This forum has guidelines and we have a community code that we should ALL abide by. If you have issues with the way someone is communicating with you outside of this forum then you should be addressing that issue between the two of you, not publicly on this forum and especially not in a way that practically humiliates one of the parties by attempting to ruin their credibility.
This is extremely unprofessional behavior. This forum is meant to help people learn and grow as Django developers, not shoot them down just because they don’t communicate to your standards.
Fair enough. I went over the line. I apologize for that. I’m not corporate and I have a big mouth.
I’ll try and reign it in. I’m not woke and willing to say what’s on my mind. I’ll own that. We come from different worlds and where I come from and live it’s no big deal.
But I understand this is a forum where people have delicate sensibilities. Noted.
I’ll try and do better.
I read your offer for pair programming in Python / Django. My goal is to learn and be a freelancer. I have had a fair career and i am now starting over as a developer.
I am aware that this is a old post but thought of reaching out and explore if you are still looking for pair programming. If yes , give me a ping.