You don't need to be an 'investor' to invest in Singletrack: 6 days left: 95% of target - Find out more
Hi all
Looking for adivice if possible. My 17 year old daughter has an autism diagnosis and has struggled to attend school and college over the last few years. She is very bright, logical and mathematically strong. We've been looking for things that might interest her, are useful, and might play to her skills and the way her mind works.
She has expressed an interest in learning to code, and from what I understand this feels like a sensible direction to explore.
Can the hive-mind help me think through
1. Is coding a decent option for her do you think?
2. If so, which langages might she start with and why?
3. She is motivated my the idea of getting qualifications, working from home if possible and doing courses online. With that in mind, are there starter courses, and recognised ones to do? And to avoid?
Many thanks for your wisdom. This is a long way from anything I know anything about so very grateful for advice.
Thanks
Try a Udemy course, eg 100 Days of code for Python is only £15.99 (it will say £59.99 then offer you a discount - same as kitchens).
https://www.udemy.com/course/100-days-of-code/
NB I've done the course and really enjoyed it!
1. My nephew is a maths wizz with autism but it didn't transfer to coding unfortunately, much to his dissapointment. So good at maths !== good at coding. Go together alot so its for sure worth exploring
2. Python is the main language for data science and the mathsy end of things. If she's more interested in making 'stuff' eg web apps / mobile apps then Javascript is the thing that covers most bases.
3. Be wary of coding bootcamps, they promise alot but many dont deliver. The better ones are more selective about who they take on, the less good ones don't care so long as you pay the £10k. Working fully remote as a junior is getting more difficult. Those roles do exist but in the last 12 months or so competition for junior roles has increased greatly, and many employeers are expecting to see coders in a few days a week at least.
Start here https://www.freecodecamp.org/ and see if she catches the bug!
I taught myself to code. I didn’t have much luck with Udemy, but that was with a relatively rapidly evolving language (Swift), so lots of stuff on the courses used out of date syntax, which didn’t help when I was learning.
I find that if I paid more (raywenderlich.com) I got something that was better supported and kept up to date.
I wouldn’t choose Swift if I was learning again, because of the speed at which it’s evolving.
Ideally you want a language that is relatively stable, and which you can learn in a forgiving environment (not XCode!), so I’d probably go with Python and Codeacademy.
Oh yeah, freecodecamp is good.
My employer (global IT consultancy) supports Code Your Future:
https://codeyourfuture.io/become-a-student/
As well as providing opportunities to people from disadvantaged backgrounds, they also support people with learning difficulties.
At 55 (and as a child of the 80s with BASIC) I got thoroughly bamboozled trying to learn to code with Kotlin and ended up giving in (I might have another go some time); I also don't have the maths skills necessary.
However, I could see that Kotlin was a very well thought out language. It'll compile to Java bytecode so can be used anywhere Java can, and it's also Google's preferred language for Android development (Android is now the World's most popular operating system) so there's plenty of potential. Apparently it can also compile to Java Script so can be used in web applications.
I don't know whether it's a better option than Python put probably worth a look and I guess that there will always be demand for App developers.
Good luck whatever she chooses, I really wish I could get the hang of it.
I found learning to code as an academic exercise a bit tricky mostly because there wasn't a goal. I've come back to it in later life as it has a purpose for me. The two things I do mostly are Arduino programming, that gives a physical output and you can really see the code doing something useful, and writing games with Godot.
Both self taught. There's some fantastic tutorials on YouTube that take you step by step and at the end you have something you can play we with and really see the fruits of your labour.
Not sure how well either of these will work for your daughter but it's cheap to try and a few evenings and weekends will be enough to see it it engages
Thanks all really thoughtful and helpful.
You might want to have a look at
https://dxc.com/uk/en/about-us/social-value/dxc-dandelion-program https://dxc.com/uk/en/about-us/social-value/dxc-dandelion-program
DXC is a fully remote company in the UK for most roles.
I used to work with the team running the program so I can probably put you in touch if you messaged me for an informal chat with them.
As for learning some coding skills, as others have said python and JavaScript are a good staring point.
Udemy is a platform where lots of independent providers publish courses.
Some of them are very good, but you have to find the right instructor for you.
Tim.
Python does seem to be the flavour of the moment. Honestly though, when you've learned one high-level language the concepts are broadly transferrable between them all.
If she's never done any coding at all, I'd start with Scratch. It'll teach logic flow and basics like "what is a loop?" without worrying that you've missed a semicolon somewhere which has bollocksed everything.
I found learning to code as an academic exercise a bit tricky mostly because there wasn’t a goal.
...
The two things I do mostly are Arduino programming
This, also.
I found learning to code as an academic exercise a bit tricky mostly because there wasn’t a goal
That++
If you have a goal then it forces you to problem solve. Without it's all exercise, useful but it's so much better with your own nut to crack.
Python does seem to be the flavour of the moment. Honestly though, when you’ve learned one high-level language the concepts are broadly transferrable between them all.
This, and I speak as someone who's only formal coding training is in COBOL.
You have to have an idea of something you want to make, to spur you to learn a new language.
I find that is still true 43 years after I first learnt my first language - BASIC.
As alluded to above, learning in the abstract isn’t for everyone. If she’s into maths then numeric analysis, statistical modelling, data science, etc are obvious step into coding - as a tool for maths. Her specific maths interest may help with the first language. Statistics go to R, general data science and ML to to Python, numerical analysis could be Julia (more esoteric but used in specific maths areas).
the core concepts are transferable, focus on the problems that interest her where coding can be used to explore.
You have to have an idea of something you want to make, to spur you to learn a new language.
Bang on.
I work in IT. I can debug code quite easily in numerous languages, however I cannot write code (other than SQL stuff) from scratch for toffee. I have tried many times to learn and each time has been met with limited success. I now know part of the reason is adhd so I find it very difficult to pay attention to something that isn't my current 'focus'
Well, now I'm learning to code python (pluralsight, got a very good offer) and it's sinking in. I'm keeping at it because I have a thing I want to build - but the language itself is just making more sense than others I've tried.
Having the thing I want to build is helping it stick though - all the time I am seeing bits of the course which are relevant to my project so I can explore them in detail.
Self taught, followed some YouTube videos from brad traversy on html, CSS and js before paying for some proper courses of his on udemy. Learnt a lot. Made more sense to me because there was a purpose behind (something I could see). When it clicked it was a "wow I can actually make something with this" moment.
She needs to learn *something* before she can figure out what she wants to do with it. I really do reckon web dev is a good place to start because it involves making something tangible.
from brad traversy on html, CSS and js
Just doing his JS course on Udemy now.
Really like his voice, very soothing!
Firstly, it's programming. Not 'coding'. Ugh.
Python would be my recommendation. It's been around a long time. There's loads of courses out there. The language is very popular and that doesn't show any signs of waning. Plenty of python jobs out there as well. Freecodecamp is good. udemy, youtube that sort of thing.
WRT maths skills, if she is genuinely good at Logic, then programming should come easy. But autism != good at programming.
Also practically to be employable IT, you do need strong communication skills. I've worked with some of people who are excellent engineers, but can't work with others and it has ended badly on some occasions.
I'd definitely agree strongly with everyone who says it's useful to have a practical thing to do, as just learning programming can be rather vague.
Sorry if the above comes across as being overly cynical, but 20 years of sysadminning/devopsing has done that to me.
I hope your daughter does well and enjoys learning to program.
Python I think is quite easy to pick up, and there are indeed lots of courses, etc.
However, Go might also be worth a look. I recently learned it, and their tutorial (the Go Playground) is really good. It introduces concepts alongside code.you can run and modify right there in the browser.
It makes it very easy to pick up IME, not least because there's no faffing about required to get tools installed and set up before you even get started.
For something to do solving some of the Project Euler problems might work especially for someone with a maths back ground. https://projecteuler.net/about
The first 50 problems are all pretty straightforward, after that they start getting trickier.
It introduces concepts alongside code.you can run and modify right there in the browser.
You can do that with lots of languages, eg the 100 Days of Code thing I did, used Reeborg, which you program in Python (and JS as well).
https://reeborg.ca/index_en.html
It makes it very easy to pick up IME, not least because there’s no faffing about required to get tools installed and set up before you even get started.
There are online emulators for every language under the sun...
EG you can just use https://www.codingrooms.com/ and not have to install anything....
Fancy writing some BBC Basic circa 1985?
It might be worthwhile looking at something like a Micro:bit for a really simple introduction to coding for something... it's a little more immediate than the arduino as it's pretty much self contained.
It starts off with drag and drop coding, but it also allows you to see the written code behind it... but also allows you to write code as well.
Just skimmed through the thread, and yeah, it’s managed to capture what I couldn’t quite put my finger on until I got halfway through - coding (haha sorry inky_squid) is not a fun thing to learn in an abstract way. But when you have an interesting problem to solve, you’ll quickly smash your way through learning some code.
I’m not sure where to advise your daughter to start, other than saying come join us in the engineering and embedded coding community, most of us are autistic or tick several boxes but not enough to be even on the spectrum.
so with that said, what problems is she interested in? Give us a few hints and we could give you some more specific guidance. For example:
solving the world big problems? Could start with some data science investigation, statistics, probably python.
likes detailed small challenges? Start with arduino. Make a light blink. Next, learn C.
More design oriented? Learn about GUI design, build something in C# or for whatever phone OS she uses
likes social media/web? Go and play with building a website, she’ll get exposed to JavaScript before long.
I’ve just scrolled back up to your OP and thinking again about my response.
She has expressed an interest in learning to code, and from what I understand this feels like a sensible direction to explore
yeah, absolutely, anything any child expresses an interest in is to be nurtured and you’re right to do your own homework to find out how.
But.
She is motivated my the idea of getting qualifications, working from home if possible and doing courses online. With that in mind, are there starter courses, and recognised ones to do? And to avoid?
I was able to give you my answer above because i went out to university, went out to work, learned about it. I’ve made a lot of mistakes along the way and it’s been tough. I’m currently in a place in my life where I’m anxious enough that I’d rather work from home than go into the office. But by god, if I don’t pick myself up and get into the office I know it really sets me back. Use your judgement on this.
I'd second Scratch if your daugher has no specific 'thing' she wants to code yet. I'm fairly sure there are free courses available and it removes a lot of the trivial stuff that can make coding frustrating.
Thanks everyone again for your kind and thoughtful responses. What a lovely, kind and knowledgeable lot you are. Lots to think about and some really good pointers.
A slight aside - I can't speak for the market as a whole, but my company has a specific hiring programme for neurodiverse people. I'd expect others would too.
https://www.microsoft.com/en-us/diversity/inside-microsoft/cross-disability/neurodiversityhiring
Graphics and audio are both areas where a strong maths background definitely will get you further than without. They were the motivators for me to learn coding self taught.
Her specific maths interest may help with the first language. Statistics go to R, general data science and ML to to Python, numerical analysis could be Julia (more esoteric but used in specific maths areas).
I really wouldn't start with R, the syntax is a bit weird. Python would be a more logical place to start, although personally I'm not a fan. Kotlin is nice, Rust might be a bit hardcore but it's growing, and Go has a lot of fans. Lots of languages she could choose - but I'd definitely add another "+1" to the point made above about having something you actually want to build as a motivator.
Agree about finding a project to build.
The thing about software engineering is it’s a rabbit hole, and how deep do you want to go?
There’s writing the code to make it do what you want, then debugging it to get it to run, then testing it to make sure it is doing what you want reliably, then debugging it again to find out where the errors are coming from, then working out about clean coding, and version control, and then about integrated development and work flows, and user experience and…
And that’s before you get into the really techy stuff like custom compilers, low level languages, language evolution etc.
Agree about finding a project to build.
No Starch press do a few project style books for python which might suit people that way inclined. Basically teaches different concepts with semi useful examples rather than "pretend to be a entire dev team".
The problem defines the tools.
There is cross over but ideally have a project.
Programming first, then software engineering later, or systems engineering.
Programming and programmers are quite often niche, and many don't realise they are niche.
From a career pov, communication is key, but this too can be learnt and improved upon.
Personally I think programming is not the career it's made out to be.
But learn python first and learn C too understand how python works under the shell and then get into algorithms for fun / academic curiosity.
I like python and use it at work to solve problems (I am not a coder by profession tho). I would go into it as a career with eyes extremely open tho. GPT4 is already better at a lot of programmers when given a decent prompt describing the requirements - coding as a discipline is only going one way in my view (other views are available, but imagine how good a coder GPT6 is going to be). I am not the greatest at python and GPT4 has at least x10 my abilities and productivity.
If there is one thing that LLMs are going to be better at than the average expert, it's going to be coding. Now you could look as this as just another layer of abstraction and that in the future coding is going to be knowing what to prompt the models to get the code but..... I duno...
I've just finished Harvard University's Intro to Computer Programming CS50X (which is free). It has lots of small, bite sized problems as well as longer projects, covers a huge amount of ground (Scratch to pointers in C, SQL, HTML, Python, SQL) and is self-paced. The teaching is first class and engaging, and there are multiple support channels online.
If she enjoys the intro Harvard also do free courses in SQL, Web Development, AI, Python and a range of other subjects.
https://cs50.harvard.edu/x/2023/
Also practically to be employable IT, you do need strong communication skills. I’ve worked with some of people who are excellent engineers, but can’t work with others and it has ended badly on some occasions
I don't think this is true for a lot of dev roles. Sure, without good communication skills you might be more limited in career progression and the sort of roles you can do (e.g. a systems architect needs to be able to articulate things to various types of people) but, where I work anyway - there's a lot of devs with poor communication skills but their programming skills more than make up for it
I'd recommend scratch, its a good way to "try" coding with a purpose, often to make games, animations etc
https://www.youtube.com/@griffpatch
this youtuber does some great example projects with detailed explanations of how to make them and why things are done in certain ways.
some of the projects he makes are very complex, such as a raycaster engine, or how to serialize data, but done in such a entertaining way, they are easy to watch.
@Ewan, I agree that GPT4 etc are going to be useful tools for coders, I'm yet to be convinced that they'll replace coders.
When we get a full self driving car that'll take us from anywhere to anywhere reliably, then I'd be concerned. I don't think either thing is likely to happen in my lifetime.
I agree that GPT4 etc are going to be useful tools for coders, I’m yet to be convinced that they’ll replace coders.
They were claiming it was going to replace lawyers....
The lawsuit began like so many others: A man named Roberto Mata sued the airline Avianca, saying he was injured when a metal serving cart struck his knee during a flight to Kennedy International Airport in New York.
When Avianca asked a Manhattan federal judge to toss out the case, Mr. Mata’s lawyers vehemently objected, submitting a 10-page brief that cited more than half a dozen relevant court decisions. There was Martinez v. Delta Air Lines, Zicherman v. Korean Air Lines and, of course, Varghese v. China Southern Airlines, with its learned discussion of federal law and “the tolling effect of the automatic stay on a statute of limitations.”
There was just one hitch: No one — not the airline’s lawyers, not even the judge himself — could find the decisions or the quotations cited and summarized in the brief.
That was because ChatGPT had invented everything.
https://www.nytimes.com/2023/05/27/nyregion/avianca-airline-lawsuit-chatgpt.html
Perhaps i've drunk the koolaid, and i'm happy to admit not everyone agrees with me. That lawyer thing was more down to a misapplication of the technology than anything else - if the lawyer had used a retrieval augmented generator (i.e. a LLM combined with a (normally vector) database of knowledge) then the issues with made up cases wouldn't have worked. At work I have this working on internal documents that were not part of the LLMs training set (you can get enterprise instances of the openAI models to cope with company security issues) - it works 99% of the time.
Comparing with a self driving car (which are here fyi - waymo run a taxi service in phoneix for example) isn't what i'd look for when deciding if LLMs are going to hugely disrupt the software engineer career market. Self driving cars that work for 99% of situations exist and have done for years, the problem is the 1% is driving at 80mph into a truck that has jack knifed on an interstate. This isn't true with coding - you get it to code, you test the code, if there is a problem, you fix it - there isn't the regulatory barrier there. In reality you get it to code, you tell it to create your unit tests for the code, you then tell it to fix the issues that occur...
I think conservatively a coder that knows how to use GPT4 and has built it into their workflow is probably two or three times more productive than they otherwise would be. So either a load more coding is going to get done, or less coders will be needed (for debugging and the more esoteric stuff) - probably something in the middle. I expect this will exert a downward pressure on wages for the average (superstars will be fine) coder tho.
The difficult is not writing code to invert a list of whatever, it's interfacing, it's building structure, it the maintainability its extendability. There is a case for integration of LLM into the tool chain but less important than you think. Wizards have been around for ages but only give boiler plate. Hell even naming variables is hard. LLM will impact more on cheap copy writers etc first. Long way GOTO before they displace software engineering if ever, it will need to be more than LLM to do that.
I agree all of that is hard. However, three years ago we were saying they had a long way to go before an AI could make a photorealistic photo, pass a traditional turing test, etc. And yet here we are...
Guess we'll see - my main point to the OP was that their child should go into it with their eyes open. On the list of jobs that are more venerable to disruption by AI, coding is fairly high on the list.
A slightly different approach to pure software development would be to look at Infrastructure as Code (IaC) focussing on something like Terraform to provision…infrastructure. Considerably easier to get to grips with and a more tangible output e.g. getting a Cloud service like a database provisioned and running in just a few mins. Still plenty of career opportunities.
If that floats the it could tie in with plenty of other languages e.g. Go which was mentioned earlier.
Just thinking:
What about playing in Excel and building macros / VBA applications?
You start by recording keystrokes and then build by adjusting the resulting code.
(I'm a child of the 80s and learnt Basic. I dabble with Python on a Raspberry Pi to run weather stations and adsb flight trackers. I have a lot of fun at work automating tasks with macros in Word and Excel)
Guess we’ll see – my main point to the OP was that their child should go into it with their eyes open.
Yes, I personally would not recommend programming as a career but for reasons nothing to do with AI
On the list of jobs that are more venerable to disruption by AI, coding is fairly high on the list.
Definitely disagree with this, the only coding jobs it may take are ones where people are just writing a script. LLM are limited in what they can do in this area a long long way to go for AI. We are a long way from any jobs being under threat, augmented perhaps but under threat no, especially programming.
@hb70 - just resurrecting this as a thought occurred to me when I found some stuff from a recruitment thing I went to in March.
These folks are a neurodiverse IT consultancy:
I had a good chat with them at the fair and they were talking about how they do outreach stuff with young people interested in IT careers. It might be worth having a look to see if there's anything there of use to your daughter.
Hey @stevious that's super kind. And to all of you actually. We took the advice that you gave, she's just nearly completed her first taster course and really enjoyed it. So thanks for your kindness and wisdom you lovely bunch x