Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "wk204"
Writing software is fun but:
-most of it doesn’t work
-most engineers are dumb and lazy
-nobody tests anything no matter how many lives are at stake
-people will actually fight you to try to make you test less or not at all if you try to test anything
-if your stuff doesn’t work people will ask if you tested it
-if other people write tests their tests will be wrong or trigger undefined behavior
-decisions are made from the top down and are not based on technical merit
-your salary will be linearly proportional to your age rather than talent
-if you want to make the big bucks you will have to work for a company with no morals
-that said most software companies do not have morals and all have played their part in the proliferation of surveillance terrorism
-if undefined in behavior in peoples code causes bugs they will invariably claim they have found a compiler bug in a language they are not qualified to author in
-almost nobody bothers to understand how their system works even one layer beneath the one they work at
-nobody cares if they are being taken advantage of as long as they can’t see it happening
-everyone in the world that sells software will switch to a subscription model by 2100 to squeeze every last drop of cash out of the working class
-if you work on machine learning or data science you will be directly responsible decades of racial profiling and revoked freedoms to come, likely never to vanish
-you are signing up for 30 years of people over simplifying complex problems and over complicating very simple problems, assuming you can make it that long and don’t crack and end up in an institution
-the entire industry thinks tech is the answer when most of the time it is the problem.
-most software ever written triggers undefined behavior and we made it this far because processors were simple enough that their IMPLEMENTATION of the architecture did the expected thing (or something close enough). That is now falling apart at the seams as we try to do anything less obvious with our architectural models and most people are not smart enough to do the right thing in these architectures.
-you will be smart and solve hard problems and yet webex and email will hold you back. Problems that have been solved since 1979 or earlier.
-Office politics will also hold you back and give you grey hair
-people you work with will not be rational and will act on jealousy or out of an inferiority complex to block your progress, no logical reason whatsoever.
-people will want to change tools and environments “just because” and if you don’t validate their baseless decision they will refuse to grant evidence as to why that’s necessary or even beneficial and will most likely never speak to you again.
-customers are politics and politics is everything
-exceptions aren’t made for exceptional people or circumstances
After 30-40 years of this you will have no doubt accomplished great things, none of them will any longer be in production, and they will have advanced the surveillance terrorism envelope. Congratulations.34
I don't think I could give the best advice on this since I don't follow all the best practices (lack of knowledge, mostly) but fuck it;
- learn how to use search engines. And no, not specifically Google because I don't want to drag kids into the use of mass surveillance networks and I neither want to promote them (even if they already use it).
- try not to give up too easily. This is one I'm still profiting from (I'm a stubborn motherfucker)
- start with open source technologies. Not just "because open source" but because open source, in general, gives one the ability to hack around and explore and learn more!
- Try to program securely and with privacy in mind (the less data you save, the less can be abused, compromised, leaked, etc)
- don't be afraid to ask questions
Do whatever makes you happy and dont let your idiot parents pressure you into tech just because they think thats where the money is.13
No matter how much you learn and practise, you're still going to break something.
So get on with learning, and break something huge!5
Like visual basic? Go for it. Scratch? Get stuck in. Like playing around with HTML/CSS/JS? Ignore anyone who laughs. Want to learn C++? Awesome!
The best thing you can do as a kid is get exposure to it, be creative, be curious, work out how to do stuff, and get stuck in. It's not the time in your life to listen to anyone who's discouraging. Then, whether you take this up longer term or not, you'll have had some fun, created some cool stuff, and have a good grasp of some basic concepts.3
1. Learn to use Google.
2. If you don't know English, learn it. Most good resources are in English.
3. Be patient and don't give up. You'll get *very* frustrated, believe me.
4. Don't bother other people with stupid questions, refer to item 1. Only ask in forums/answer hubs if you can't find what you're looking for through Google. Yes, that means going into Google's second result page.
5. Don't get discouraged if you don't have friends your age that like programming. You'll find people with the same interest later :)
6. If you don't understand stuff right away, don't worry. Copy code from YouTube tutorials and change them a bit. No Ctrl + C Ctrl + V though, copy it by writing. Little by little it'll start making sense and soon enough you'll be able to write stuff of your own.
7. Most importantly, have fun!
(This advice comes from someone that started programming at age 10 in a county that doesn't speak English)8
Whichever learning path you choose, its gotta be a marathon not a sprint. Start off with 30 minutes or an hour every few days. Make it as fun as possible
Right off the bat
No beating around the bush like a pansy
Actually knowing the CPU operations (which in essence are very limited and simple) will help him/her understand EVERYTHING: its limits and its capabilities.25
If you dont find any answers on stack overflow dont post a question there.
That place is too cruel for adults let alone kids1
Surely this will be down voted, but whatever:
2. Wait until you are 13-15 years old to dive into it
3. Live your childhood "normally" (this normality is totally subjective of course)4
Advice to any child thinking to start coding:
Don't think too big at first. You'll definitely get there if you play it smart. Babysteps, kiddo, start with the babysteps. We've all been there, we've all started with all the hello-worlds.
Never trust a sole source of information. Always have doubts and double-tripple check with other sources. Some tutorials are misguiding, others could be solving slightly different problems than they appear to at the first glance
listen to the seniors/mentors. Seek for mentorship. This field is too vast to absorb it on your own. Mentors will help you there.
Before diving into coding make sure you know what you want to build, how it'll work. "I'll make it move somehow" is the straightest path to disappointment. Think it through, ask mentors for help if you need
If you're building an elephant, start with his front left feet's toes. Don't start with the elephant.
Most importantly - have fun!
Never be afraid to break something your working on! You’ll gain so much experience from trying to fix it including your own computer!4
A bit late.. and not much about how to learn to code..but more of a figuring out if the kid has a right mind set to do so..
If the kid is not the type to question everything, not resourceful, not a logical/critical thinker, gives up easily and especially if not interested in how things work then being a dev is most probably not for them.. they can still persue coding, but it will end badly..
From my experience, people who have a better education than me, but lack those skills turned out to be a crappy dev.. not interested in the best tool to complete the tasks, just making 'something', adding more shit to the already shitty stack.. and being happy with that.. which of course is not the best way to do things around here..or in life!!
Soo.. if the kid shows all that and most importantly shows interest in learning to code.. throw him the java ultimate edition book and see what happens.. joke!
There are plenty of apps thath can get you started (tried mimo, but being devs yourself it's probably not so hard to check some out and weed out the bad ones) that explain simple logic and syntax.. there is w3schools that explains basics quite well and lets you tinker online with js and python..
so maybe show them these and see what happens.. If it will pick their interest, they will soon start to ask the right questions.. and you can go from there..
If the kids are not the 'evil spawns' of already dev parents or don't have crazy dev aunties and uncles, then they will have to work things out themselves or ask friends... or seek help online (the resourceful part comes here).. so google or any flavour of search engines is their friend..
Just hope they don't venture to stack overflow too soon or they will want to kill themselves /* a little joke, but also a bit true.. */
Anyhow, if the kid is exhibiting 'dev traits' it is not even a question how to introduce it to the coding.. they will find a way.. if not, do not force them to learn coding "because it's in and makes you a lot of moneyz"..
As with other things in life, do not force kids to do anything that you think will be best for them.. Point them in direction, show them how it might be fun and usefull, a little nudge in the right direction.. but do not force.. ever!!!
And also another thing to consider.. most of the documentation and code is written in english.. If they are not proficient, they will have a hard time learning, checking docs, finding answers.. so make sure they learn english first!!
Not just for coding, knowing english will help them in life in general. So maaaaybe force them to learn this a bit..
One day my husband came to me and asked me how he can learn.. and if it's too late for him to learn coding.. that he found some app and if I can take a look and tell him what I think, if it is an ok app to learn..
I was both flattered and stumped at the same time..
Explained to him that in my view, he is a bit old to start now, at least to be competitive on the market and to do this for a living, but if it interests him for som personal projects, why not.. you're never too old to start learning and finding a new hobby..
Anyhow, I've pointed out to him that he will have to better his english in order to be able to find the answers to questions and potential problems.. and that I'm happy to help where and when I can, but most of the job will be on him.
So yeah, showed him some tutorials, explained things a bit.. he soon lost interest after a week and was mindblown how I can do this every day..
And I think this is really how you should introduce coding to kids.. show them some easy tutorials, explain simple logic to them.. see how they react.. if they pick it up easily, show them something more advanced.. if they lose interest, let them be.
To sum up:
- check first if they really want to learn this or this is something they're forced to do (if latter everything you say is a waste of everybodys time)
- english is important
- asking questions (& questioning the code) is mandatory so don't be afraid to ask for help
- admitting not knowing something is the first step to learning
- learn to 'google' & weed out the crap
- documentation is your friend
- comments & docs sometimes lie, so use the force (go check the source)
- once you learn the basics its just a matter of language flavour..adjust some logic here, some sintax there..
- if you're stuck with a problem, try to see it from a different angle
- debugging is part of coder life, learn to 'love' it4
Sho Ha Ri
First, follow the tutorial and don't try to do anything fancy, finish it and have it in a working state
Second, start experimenting, can this be improved? How? Does it still work?
Last, transcend. Develop your own way of doing it.
If you don't go through these stages properly you might get stuck and frustrated and never get whatever you're working on in a working state, resulting in hating the technology.2
1. Learn as much as you can before starting your first serious job. Because once you are in production, you are not as much learning new concepts as you are copy pasting, fixing dead code and getting stressed by deadlines.
2. Aim as far as possible and believe in yourself. Facebook or google might comprise of a billion lines of code, but it's not like you can't understand all of it if you gave it your 100%. Be it a weird but amazing looking design or a simple looking calculator, you can figure it out if you are curious and dedicated enough.
3. Learn to google.
4. Don't let assholes berate you. And you WILL meet a lot of assholes in this field.1
Make google (or any other search engine) your best best friend.
Understand the art of asking questions.
Dont be ashamed of asking most of the developers no matter the experience still ask questions thats how people succed.
Make some projects .
use sites like hackerrank.
Learn utilise make.3
It’s like with lego you build things using tutorials and then break them and upgrade as you want them to be.2
After you have made pong, overengineer it, put new mechanics into it.
And because we're talking about kids here I think games are good because they can easily see what they have done, that helps them to keep motivated to tinker.
Don’t let anyone tell you what to do in your life. Be whatever you want to be.
...if you do decide to be a coder, remember no language is better than the other. No language is perfect. You’ll never be a perfect coder. You’ll always need to search for basic things.
If at any point of time you disagree with any of this, you’re on the wrong path.3
As @shoop said, learn to Google is essential. Also, if the interest isn't on top, mentor them, give them tasks that build on each other. And don't start with assembler language.1
Learn to program on your own BEFORE doing formal studies, or chances are you'll get either annoyed && (bored || frustrated).
Best advice is to present them with a challenge. Find some real world problem. Afterwards figure out how to help the kids solve it by code. If you manage to inspire the kid, it will find the most creative ways to learn whatever it is.
Ex problem: "make a piggy bank" or "help mummy not forget groceries". Does not have to a perfect solution as long as the concepts are clear
For coding advice
Don't stop thinking
Keep asking how and why a thing works
Learn the logic
Pick any one language
Write some code, do mistake, fix, learn and repeat
Do keep a balance of coding and real life ,playing games are necessary
Do exercise as well....
Maybe some more things we can , but most important is
Do what you love not what others love.
It's your life live and code your way...
The best way to get a kid interested in coding is give them legos. If they hate legos, they most likely wont like programming, or anything that requires you to understand how something is designed in order to build a service or product.
Next is just to see what the kid likes and what they're good at.2
Don't make your problems too tangible. Abstract them. Sure you need to check which events (given by start & end dates) are happening at a given time. Don't jump in just yet. Think about it. You're searching for intervals given a point. Google that. Read about it. You'll learn something useful instead of just doing an inefficient naive solution. Now that you know it, show off. Find some programming competition and own that!10
Pick up a course, or like in my case a book and start. Try to understand as much as you can, try to write some easy programs that will maybe calculate, convert or display something. Anything, basically. You can always start a course that teaches you straight from the beginning for eg. boe to build a game, website or anything you're interested in. Just one thing to remember. Never make breaks that will last longer than 2 days. Keep on pushing and follow the course. Then you'll definitely achieve something worth your time.
I'd strongly advise to learn some basic about OOP and a commonly used programming language and not go down the tutorial rabbit hole and rather try stuff out.1
Bruh, just learn them how a computer works with minecraft. Inverters, And, Nand, etc... can all b made there. From there, u can make flip-flops, u can make registers, adders, multiplexors, demuxs. Ofc makin anything more then a 1-bit, maybe 2-bit machine, would be a pain, and dont get me starting on memory that extends one register. But hey, if u got the patience, u can ofc. Put it together to an ALU, combin all of them with a PC to an CPU. Ofc, you got no ROM or RAM, but hey, atleast u've built the hard part.4
When (not if) you mess up, kick yourself for a while. Then make sure you reflect why it went wrong and take that knowledge with you.
When you do a microproject on some framework, make sure you know how it works, as in, know what you've written rather than blindly copying from tutorials, stackoverflow or documentations.