Some background: due to the whole “autistic recluse hermit” thing I’ve got going on since very young, I’ve always been the sort to search for info in books or the internet instead of other irl humans. So I don’t even have personal experience to draw from on how that changed for myself.
I’m currently mentoring some young (adult) programmers and preparing some coursework for them, and I’ve always been confused by how much difficulty beginners have with “just” searching for solutions to their problems online. (I put “just” in quotes there because I realise that it’s actually difficult for them.)
This leads to a lot of situations where they’ll ask me things and I’ll literally just send them one of the top 5 duckduckgo results that I find on a quick search, which is usually exactly what they need. Besides creating learning bottleneck (i.e. if I am otherwise busy they could be left waiting too long), I worry that they won’t develop the independence to find the solutions themselves in the future.
But I definitely don’t want to tell them to “Just Google DDG it” or RTFM. Not because I don’t think they actually should, just because I think they might take that as some sort of insult or think that I’m not interested in helping (when in fact I’m always more than happy to help even with trivial stuff like this).
I recognise that one part of the problem is that they’re not all comfortable with their English, and native language search results are usually not very good. But I reckon there’s more to it that I’m just failing to understand, and if I don’t even properly understand the problem, I won’t be able to come up with a proper solution. I don’t think this is a local issue, so I believe others here might have encountered this in the wild too and understand it better than me.
What am I missing here?
Edit: Great comments all around, I’ll ponder all the suggestions and insights here and see what I can do. Thanks comrades!
Three things to focus on:
- They might not know how to Google for research purposes. You can teach them how to do this and check stack overflow given a question. You’ll want to do this as an intentional lesson not as replies to messages.
- Knowing what to search for requires a baseline of knowledge they may not have and don’t have the time to pick up through self-teaching during the period of your course. You probably self-taught many things, but was it all while also working 30 hours per week and taking courses?
- What are the things they’d need to search for? Why aren’t they part of your course materials? Algorithms, databases, installing/configuring software, etc should really be provided by the teacher. Many CS courses are terribly taught because they assume every student is already very good with unix-ie administration, installing libraries, setting up an IDE, and so on. Despite this, those same programs offer no resources for learning those things and don’t even advertise that they’re required to succeed. These are probably things you should front-load for the first two weeks or so.
I think what you’re doing is fine. I guess the problem with searching for solutions is that they’re either not used to doing that, or they want quick answers. Try to discuss with them about it, and tell them explicitly that you’re guiding them to be independent. Show them how you personally would look for problems with an example. Like “How to declare an array in Java”, etc. My professor used to pick an individual student’s problem and discuss it collectively and show others how to solve it, and I personally enjoyed it, too.
This is what I wanted to say. Googling is a skill. I work professionally as a programmer, and have for decades. A good chunk of my job even now is searching docs or the internet for the answers to my troubles. If a CS student can’t do that, they’re going to have a bad time.
The perennial problem! You’ll have to teach them. It’s hard when you realise other people can’t figure out things that come naturally to you. But it’s very common. And there will be things that are opaque for you that seem obvious to others. You have to build capacity and scaffold the relevant skills.
Break down the task (here, of problem solving in your field) and work out what the key skills are, including how to decide what information is useful and what should be discarded for being unreliable. People new to this might not be able to figure this out for themselves.
Then you tell them how to do step 1 or what to look out for in terms of reliable information, followed by giving them a small, achievable task that directly follows from what you taught them.
Then do the same for step 2 and give a task that consolidates what they learned on step 1 and adds the new bit. Then the same for step 3, with a task that builds on steps 1 and 2. And so on. You can give a reminder about what you taught them earlier but this can just be a signpost. Then get ready to be frustrated when you do all this and half of them don’t do it then complain about not being taught.
For example if I was teaching someone to cook, I wouldn’t get far if I told them they need to look in the recipe book. I need to find a recipe with several steps and techniques, then build the capacity to complete each step in isolation. How to fix a dish when you slip with the salt or what to do if it dries out or if you’ve cooked it for the required time and the middle is still raw. Only then can I send them to the recipe book and tell them to put it all together.
For me, link to documentation whenever possible. Like, not in a “go read this for yourself” sense, but more of a “I’m citing my sources” sense. if you CAN answer a question by pointing to a line or paragraph in the official documentation that answers it, or by linking a couple different bits of docs together, do so. Bonus points if this is a live scenario, where you can do this research live in front of them. Eventually, they should start getting the clue that you’re not pulling your knowledge out of your ass, you’re just using the same resources that are available to them.
The other thing I do a lot, for folks who don’t seem to want to think for themselves, is to enter only-questions mode. It’s trickier to avoid being condescending with this, so be careful, you have to be able to recognize when to go back to real answers, or they’ll just spiral into frustration. If someone asks “How do I XYZ?” (well, usually I’ll have to ask leading questions to get them to ask that in the first place), I’ll come back with “Which part are you having trouble with? X, Y, or Z?” If I’m helping someone and they say “I don’t know” I’ll often come back with “Why not? Which part don’t you know, A or B? Not knowing something is a solvable problem.”
My experience is heavily in one-on-one teaching, so it all amounts to “lead by example” for me. YMMV.
I think a part of it is that they are being mentored by you, not by google etc. So they come to you looking for answers because isn’t that the whole reason you’re mentoring them? To teach them?
I think this could be more of a case of them seeing you as an authority on the subject and so wanting your thoughts and opinions first rather than just checking it on the web.
As a person, you can give them a clear yes/no on whether something is correct, but if they google it, they could just end up with a wrong solution. Additionally, they’re probably trying to understand the concepts involved, and are worried that copy/pasting code from google will mean they won’t be learning how to do it themselves.
I guess the real question here is: Is this even a problem? Is this something you’re worried about, but your mentorees aren’t bothered by at all? Maybe you could talk to them about it and find out directly from them?
Though I’m a former psych major, not a programmer, so I’m probably a bit biased towards the “talking out problems” solution lol
Maybe narrow the search window by finding some quality resources that are drilled down a bit already and having your students get in the habit of searching those specific sources first before searching at random on the internet.
My issues when i’ve tried to look up problems through random internet searches:
-
I have no idea what the thing I’m trying to do is called or how to describe it correctly. Ill only know what the outcome is supposed to look like or can only really describe what I’m “seeing” which means I’m going to be using the wrong words to describe things.
-
Places like StackOverflow can be okay for finding helpful solutions, but the questions that have already been asked look similar but are different enough situations that the solutions aren’t 1:1 with my problem, which just leads to more researching. This could be cool if I wasn’t under any deadlines or other time constraints, but this is rarely the case so it leads to a great deal of frustration.
-
In the off chance I find some post with a really close 1:1 match with my issue, so many of the comments/solutions will ignore things the OP posted about and will wind up being not solutions at all. As an example: Recently I’ve been looking around for ways to figure out 1) where are nonprinting characters in my spreadsheet ripped from some website application generated report and 2) which nonprinting characters are they so I can remove them to see if that is what’s messing up my ability to get the silly spreadsheet to sort my silly records in nonsilly ways. All I’ve been getting as answers are 1)download somebody’s spreadsheet macro (which I’m not allowed to do because… reasons) and 2) “jUsT uSe =cLeAn() or =TrIm(), iT wOrKs EvErY tIme!” But they don’t work because clean() only works on a preset list of nonprinting characters that doesn’t include all nonprinting characters and trim() only works on “space” character.
-
Lots of search results where its just SEO/AI generated blogs which all pretty much have copy pasted each others information and little of it new or helpful.
-
Answers to a problem with a workflow that doesn’t explain what do when there is a problem encountered when trying to follow the workflow. (For me this usually looks like: “Hey, follow this workflow to get into the workbooks settings and then click these check boxes” but whatever version they’re using doesn’t match my version so it becomes another research project to figure out “where did this check box move to in my version?”)
-
Google isn’t a bad tool but it’s not what it used to be. And if you don’t know what you don’t know you may not get good results. You could also introduce them to a search engine using LLMs on the backend like perplexity.ai which improves the ease of use for finding real answers substantially. But you would need to teach them about limitations of this, especially for more niche topics where the LLM will make up an answer which is likely wrong if it can’t find anything. They also don’t know what they don’t know so you will need to spend some more time on metalearning about what topics, libraries, algorithms, documentation websites etc. exist in the field. Finally, you should spend some time teaching them memory encoding techniques to improve their ability to learn. Of course this is all in addition to providing most of the necessary information as part of the course work.
i would guess is discovering what makes tick and make the examples orbiting that concept that makes then tic.
like imagine a turn based rpg, how the enemy decides what to do in their turn, like if enemy hp less than 50% it should heal itself else attack player
Instructive anecdotes
Watch/force them to watch “Dead Poets Society”? lol
I’ve never seen that. What’s the relations to programming?
None. It’s about an excellent teacher inspiring passion in his students.
But I reckon there’s more to it that I’m just failing to understand, and if I don’t even properly understand the problem, I won’t be able to come up with a proper solution.
Analyse why they are stuck. You already have the answers while they don’t. Hence you knew what to search for. This indicates your course work has gaps. Gaps that they can’t think their way out without your help.
Even young adults are building cognitive skills like abstract thinking, organisation of ideas, systematic problem solving, creative thinking etc. It’s more important they develop those higher cognitive skills rather than just solve a particular technical problem you have created. E.g. there should be multiple solutions or paths to getting to a particular solution. Going to internet search is only one path (that seems obvious to you but not them).
If you need them to do a search, then they have to be able to create that search phrase. That’s a skill in itself that possibly requires exercises.