Of course some mentoring is useful. But just the stuff that's pertinent to the task at hand; concrete help that gets them moving forward. Because, somebody is paying for results. And because producing results has a very positive effect on confidence.
I just offered work yesterday to a young person helping me at a big box store. I mentioned I was buying a device to test an Android build, and they got excited and started making cogent comments about the tool chain and devices available. I game them my card, and when they graduate in 3 months (from a local community college) I'll find them work on a client's contract.
The first project will cost me more than I earn from subcontracting them (because it takes me away from my high-rate work I would otherwise be billing). Maybe break even by the 2nd. But it's a sort of enlightenened-self-interest thing. If young people get into the field, everybody benefits.
And of course as an old guy with resources, I can afford to take some risks. Because it's everybody's job to look out for the other guy.
I ask because my experience wasn't the same so I'm interested in other perspectives.
One experience that jumps to mind right away - a few years back I was in charge of mentoring a group of interns. The thinkering/enthusiastic guy was smart and reminded me of myself at that stage - but I was a terrible employee at that point and it took a lot of failing to get productive, and this guy had all the same faults - overcomplicated things, didn't focus at task at hand, wasn't paying attention to requirement details... all this made him unreliable and a pain to work with.
There was one guy in the group who was average capability/enthusiasm but was hard working and focused. Wasn't the fastest to figure things out but if I left him with a problem I could see he put effort and tried to pay attention.
But I do still most enjoy working with enthusiastic people as long as they've totally failed a few times, to know their own weakness.
I doubt it correlates with productivity outside of something like a sales role. Most of the world's work seems to get done by people who don't appear particularly enthused.
Can you share some sources to get deeper here?
Until now, I thought apathy wasn't a sign of productivity.
For sure, I can use my personal truth to answer my question. Still, vague information, including the entire working population, has been mentioned. I was genuinely interested in seeing the source, nothing else, but thanks.
Production engineering can be “pedantic,” and “boring.” Lots of punchlists, and “polishing the fenders.”
this approach is useless for when your actual goal is to spark enthusiasm, such as in... teaching
I generally don't teach coding to newbies, so a lot of the coding I teach is correcting poor mental models and teaching features (somewhat) unique (or different) in Python.
My best Pandas courses have been when the client opts to use their data for the course (instead of my canned data). The students are already subject matter experts with the data and when they learn some of the tricks to slice and dice, summarize, and visualize, they are off to the races. They dig right in.
Teaching as the article suggests is very difficult because examples that appeal to some or boring or confusing to others. I'm not saying it won't work, but there are cons as well. When I'm teaching with my "canned data", I try to mix in a few different datasets from different areas so students can see that the ideas are generally adaptable.
This is still how i learn (most effectively) today. If i want to learn a new language or something, i write something that i always wanted to write in it anyways. That way it doesn't get boring.
I think what you're describing might be similar in that canned-data is not interesting.
I'll explain: many piano teachers won't take adult beginners, purely because they have unrealistic ideas of how good they're going to be. They want to play a Chopin Etude or the Goldberg Variations or a Brahms Intermezzo, and don't want to spend time struggling with Clementi.
Well, sorry. You won't be that good for a long, long time, if ever. It could be that some beginning programmers also have wild ideas of doing a game as good as GTA, all by themselves.
If you're picking up basketball at age 30, I hope you know that you're never going to be anywhere nearly as good as Curry, or Lebron. But you can definitely pick up a subject matter and become an expert later in life. Heinrich Schliemann essentially began his archeological career at age 36 and yes, basically excavated Troy in the worst way possible, but managed to actually excavate Troy. That's the difference between an adult piano learner and an adult code learner, I think.
Well, I hope so, too. However, in basketball, the really good players aren't even going to let you play with them, so you're forced to play with people your own level. In music, you're constantly hearing 8-year-olds who are better than you will ever be.
I believe it's the motor skills, and the plasticity of the brain. Personally, I memorize pieces with no effort at all, but sight reading is a bitch for me and always will be.
Lots of parents think it's important for their kids to learn music, actually, with no thought that they'll become professionals. In fact, most of them would be horrified if that happened.
But one time I saw the student list for the kids. Every single one was Chinese.
It's full of PLPs (Pedantic Little People, or you can substitute a different P-word for "people"). And why is it full of PLPs? They get little brownie points for answering, and when you get to certain levels, then you're allowed to do even more! So they compete with each other and downvote your answer for, well, pedantic reasons.
I suppose this site has some of that, but it's not nearly as obnoxious.
Anyhow: I finally found a teacher who played standards, and actually studied with George Shearing! But they're few & far between.
But yeah, conservatories are definitely that. "You, too, can get an expensive education and then struggle to compete with 200 other kids just like you for the the very few paying gigs in classical music!"
And more than that, you need to have a concept of the difficulty of a given problem for a beginner or expert. Obviously a beginner will be wildly off, but probably needs some concept of the level of difficulty.
For example, lots of people have motivation to write a game. But few have the level of obsession to follow through with it. Maybe they should do a basic iPhone convenience app or something first instead.
I thought writing a C++ compiler would be just some new keywords and member functions, and would take 3 months.
10 years later...
If the goal is to release a complete product, then you're right that that's a problem. However, if the goal is learning, half a game is a great way to learn about a variety of systems and how to program for them!
The problem was that about 95% of my students didn't have a program they wanted to create. Some just wanted a hobby. Some wanted a better job. Some wanted to do a startup and manage a team, but they didn't really know what kind of startup to do. One guy joined because he made discord bots and thought node.js was cool, but learning loops started to get boring for him.
But you will do better teaching-wise if you do find something that has intrinsic motivation, not turning it into a chore.
It just might not be the right time! They've basically got until they are 18-20ish to decide to get into it. The programming books my parents gave me after 8th grade never interested me. The 11th grade programming class didn't either. The junior year of college tangentially-related course where I was like "oh I could write a program to help with this homework!" That did the trick for me.
So just keep trying, see if you can find programming-related aspects of other hobbies. And just try to focus on them learning things around those hobbies or obsessions, even if it doesn't seem to have a practical application. Get in the habit of going deep on subjects and practicing learning.
They don't need to start with redstone to learn to code. They should play the game and naturally realize that redstone is a way to solve their problem (like making an automatic sliding 2x2 door) and then solve it.
I feel like those skills will take you much further in life because now you have an extra tool to solve problem no matter what field you end up going into. And since programming is so powerful, it's often one of the best tools for the job so kids will naturally pick it up.
But.... I can finally program.
Do such kids need to start with regular programming languages? Wouldn't visual languages be a simpler starting point for them to get motivated?
It can be quite fun to implement a simple data structure (tree, queue, etc.). in C and bind it to Python.
Otherwise, you can get a lot of dirty details by reading the source to complicated/magical libraries (e.g. pickle).
I was struggling to find why does
a = [1, 2, 3]
a = b
b = b + 
return a different value as compared to
b += 
Looking into the source code, everything became clear. The + operator returns a pointer to a new list np containing all the elements from a and b, while += merely appends and returns a pointer to the original list
True, but teaching s programming language is different than teaching programming.
Diving into a new language is something you do if you already understand how computers work and how to turn requirements into code. But to first acquire that understanding as a beginner, it's not enough to be introduced to the specifics of any particular language, which is what the article is talking about; you need to clarify what is the role of a programmer in understanding a problem and finding ways to model it as a group of data structures and functions that live in the computer.
Why thanks for asking yes I do: I recommend my book, Illustrated Guide to Python 3 .
Yes, I teach "professional" Python programmers who lack a lot of the fundamentals. It is so easy to get my with Stack Overflow style of programming these days. (Plus a lot of my students don't want to be "programmers" they use Python as tool to get some job done.)
0 - https://store.metasnake.com/
Feel that's sentiment get more now - it's *not* magic but the fact that everything works given it's all illusions is magical
I've never understood the modern theory that one can master a subject yet not be able to answer questions about it.
Would you rather work with someone who added a major subsystem to one of your compilers for fun or someone who had never coded but could recite the ISO standard by heart? Who believes the former person “would not be able to answer questions about [the subject]”?
If measurements tend to become targets over time then the goal of “develop expertise” measured by “pass a test” shifts to a goal of “pass the test”, and the test is limited to what you can ask hundreds of students in a couple of hours, and they’ve seen practise papers and last year’s papers and you can’t talk to them, and you can’t see them work or the results of their work.
Is that then a good way, to develop and validate their expertise? Is it the best available way?
All the people who believe that "teaching the test" is not real knowledge.
For example, would you hire a lawyer who flunked the bar? How about consult a physician who couldn't pass his medical boards? How about get on an airplane with a pilot who flunked flight school, but "really knows how to fly"?
And yes, there are bad tests. But there are also good tests, and they work. Personally, I've never encountered a person who mastered a topic but couldn't get a good grade in it.
In your examples all those people never got to practice their craft. Lawyers can't practice law without a bar, physicians can't perform surgery without a medical license, etc. But software development isn't like that. What if there was a surgeon who has completed 10,000 successful surgeries but never went through med school? What if there was a lawyer who won major cases with no law degree? Or a commercial pilot who successfully flew for years on a fraudulent license and only stopped flying because he got caught? (That last one actually happened a few months ago).
If you could choose, would't you pick the surgeon with a wildly successful track record over the recently graduated med school student who has never done a surgery outside of residency?
Most of them are too dead to continue to work, and the rest usually get fired if the crash was due to pilot error.
And no, I don't believe you're going to fly with a pilot who flunked out of flight school.
No, I wouldn’t fly with a pilot who flunked out of flight school, but I would certainly fly with a pilot who’s flown for 10 years without a license over a pilot with a brand new PPL and <2000 hours flight experience.
Maybe for better perspective we can try this exercise: let’s say there’s a world renowned brain surgeon in, say, Norway who has worked for decades and performed tens of thousands of surgeries. No mistakes! Tens of thousands of happy stories!
But wait. Our intrepid surgeon can’t practice in the US because she didn’t go to medical school here! If she wanted to operate on a patient in the US mainland, she’d lose to a doctor who just exited residency!
If you were the patient who needed brain surgery, who would you pick? The world renowned expert or the guy who just finished training? Your logic dictates that the guy with the credentials wins out for no reason other than they went through whatever process to obtain those credentials, regardless if there are better metrics or methods to judge occupational success by.
That's not my position. My position is if he was that good, he would pass the medical examinations.
I'm not a pilot, but my dad was, other family members are, and I worked at Boeing designing the 757. Actually flying an airplane is rather simple. Most of pilot training is about handling an emergency.
These days, emergencies in the air are very rare. You may never have one in a career. But if you do have one, trying to learn how to deal with it on the job is a good way to die.
If someone really did fly 10,000 hours, but still cannot pass the certification test, he's a fool and you're a fool to fly with him.
Also, please do not confuse "did not take the test" with "flunked the test".
P.S. I have some training materials my dad had to learn. You're not going to learn that stuff by just flying around. Much of it is things that are learned about the airplane by expert test pilots, like how fast can you fly it without tearing the airplane apart. Do you think a pilot ought to know that speed before he gets in the cockpit? How about questions like how much runway do you need with a specific amount of airplane gross weight and altitude of the runway? I remember getting on a plane in Colorado and the pilot threw our luggage out, saying it was too much weight for the altitude, and it would arrive with the next flight. Do you want to fly with the pilot who couldn't make such computations? It doan' matter how good at flying he is if the airplane won't lift off the runway.
That 5% of tests are rigorous and accurately identify squares is not really something I question, but I might question that the people who pass them were "taught to take the test" and nothing else.
(Would you say 7 years of degree, medical school, hospital residency, rotation around departments, counts as "teaching to the test", i.e. "an unhealthy focus on excessive repetition of simple, isolated skills ("drill and kill") [which] limits the teacher's ability to foster a holistic understanding of the subject matter."? - from https://en.wikipedia.org/wiki/Teaching_to_the_test )
It's the other way which is in question, "if you can answer questions, does that mean you definitely have expertise?". Is being able to answer questions the same as having expertise? Are there people who CAN answer questions but have no expertise? If so, how many?
Referencing your other pilot comment, is being able to say what action you should take in an emergency, the same thing as having the calmness and presence of mind and judgement to actually take that action in an emergency instead of locking up and forgetting and panicking? Certainly the pilot who does act well in an emergency could tell you about it, but can all the people who can tell you about it, do it?
Putting it in terms of logic, (A implies B) does not mean that ((not A) implies (not B)).
I passed German at school, despite being unable to speak German. Anybody who spoke German could have tried to have a conversation with me and see that I couldn't, that would be a good way to judge my supposed skills. Any test which is not that, any test which is a proxy to that, or a way to judge that with less effort, is worse than doing that. Teaching me to answer the questions they were going to ask on German grammar, or recite the sentences they were going to expect me to recite, is even worse.
Of course people with absolutely no skill fail tests more than random, who would question that.
It's not about hiring a lawyer who flunked the bar. It's more like, how many lawyers are bad lawyers despite passing the bar.
I don't know about law specifically, but in my experience a lot of people who pass tests don't have deep understanding. Vice versa may also be true depending on the test.
Lots of passing of tests from short-term memorization that's then promptly forgotten.
Like the companies that will help you leave as a customer because at least you leave with a good feeling and might come back, versus the companies which make it hard so you hate them forever. Experts go round Internet forums with a “fuck off lazy noob” attitude then wonder why the forum is in decline and empty with only noobs traffic, and then blame it on the noobs, because they are overrunning the site and that must be driving the “good people” out.
Mentoring and individual communication happens all over, but it looks like “doing their homework for them” which is verboten.
If they don’t learn from your answers, you might, other readers might.
The fix for “eternal September” is not “duplicate question” it’s that the older questions and answers need to be deleted, forgotten. The important bit is the development of ideas in the questioner and answerer, not the production of paperwork.
I suspect there is room for a huge forum/site based around these ideas that would combine collaborative editing, live examples, questions, and push new people not on “how to ask a good question” but “how to engage in a back and forth discussion” in some way.
This has been a disjointed blog post in a comment.
And yes, doing column buckling problem sets in college enabled me to size the jackscrew for the 757, as it was a column buckling problem.
Do you think memorizing names and dates of people and events from World War I gives much mastery of history? Or would memorizing the names of standard library functions and the academic definition of `pointer` and `recursion` give you much mastery of C?
(The flip side of this is folks I've worked with who will immediately say "this is the Command Pattern" or such and jump to writing a bunch of code that either is massive overkill and/or just breaks down when the real world introduces some edge cases.)
As for checking a reference, I knew that "column buckling" was a thing. Before I studied it, I didn't know the concept even existed, and would have no idea how to look up something I didn't even know existed or what it might be called.
> Do you think memorizing names and dates of people and events from World War I gives much mastery of history?
How are you going to understand WW1 without knowing who Ludendorff was? I know that if you don't know names and dates and events, you cannot have a mastery of history. You don't have any framework to hang analysis or understanding on.
> Or would memorizing the names of standard library functions
Nobody does that. But I will say that if you can't name any of them, I guarantee you don't know squat about C.
> and the academic definition of `pointer` and `recursion` give you much mastery of C?
I wonder how many C experts you know can't answer a question about what a pointer is.
Maybe I should just leave it at that - I am getting to a point where if someone doesn't have the willpower to go burn a whole weekend on a pile of bullshit that won't even compile (i.e. because they really want to solve some problem), then maybe they won't have the necessary pain tolerance required to truly master the skillset.
What I'm trying to get at is software engineering is an easy career if you're literally obsessed with it, and most software engineers are, or at least were at some point (it goes in cycles).
If you're not gonna do that, you simply can't assimilate the huge amount of knowledge needed to truly excel in even one facet of programming.
Work in an office writing documents and making spreadsheets? Have you ever simplified your job by writing a Word or Excel Macro?
Own a smart TV? Have you dug into its features until you know them backwards and forwards and can program it to (metaphorically) sing and dance on command?
Have you connected multiple things in your house together so you can control them from your phone, just because you could?
These are all examples of taking the initiative AND having the curiosity to dig into technical problems, and implement solutions. If you are like this, you will likely do well in tech and really enjoy it. If you DON'T have the tendency to do these sorts of things, you are probably going to have a bad time.
I think this is the best predictor of poor outcome in the field. The devs I've seen that chose the field for the money typically didn't last long and did everything they could to get into a non-technical position (often management). And then, unsurprisingly, fared poorly there as well.
I often see STEM pitched as a way to make money... And really the only people making money out of it are the institution cashing the first-year tuitions checks before they drop out. And that’s not even touching the predatory ISA that bootcamps offer…
I would also suggest that it's a matter of having an engineeristis attitude (analyzing problems and finding solutions) more than the topic itself.
Indeed. And the periods in which I can be obsessed seem to be increasingly less common as I get older, but every now and then I get bitten and just have to bang it out.
The thought that some devs are more respectable skill-wise because they hack in their free time is short sighted.
You literally have 8 hours a day to experiment and try all you want, everyday you have the opportunity to learn, hone your skills and experiment and good companies actually have days dedicated to experimenting.
Obviously you can't get great at this job if you don't bang your head on problems for days, but I fail to see that's a quality of recreational programming.
I don't have the energy to code on private projects for eight hours after eight hours of coding at work (besides occasionally enjoying not sitting in front of a monitor...).
But every once in a while it bites me to blow 10 hours of tinkering on some strange useless problem, like simulating Logic-Gates with basic arithmetic.
> No dentist gets told he gotta setup a practice in his garden shed to practice pulling teeth
This is a weird argument to me, the medical field has an even more unhealthy work/life balance than our field. They absolutely "practice at home" (obviously not through home surgery, but reading and so). Dentists have an easier time than most other medical professions, but every dentist I've met regardless had extremely good work ethic and frequently obsessed over his work.
You can absolutely work 40hrs a week and be a good engineer business-wise. However, most people who are remembered for their contributions to a field (and weren't just in the right place at the right time) dedicated a large part of their life to it. That includes writers, poets, musicians, doctors, anything.. to quote old Onion videos: are tests biased against students who just don't give a shit?
It is very common for professional athletes and for anyone who wants to live off their art (painters, musicians, writers, etc). Most academic types I know are like that too.
There are plenty of programming jobs where 40hs a week is enough and you get paid a good salary.
Now, if you want to join a FAANG, that's a different story. But no one wins a Grammy by playing exclusively in weddings either.
In a way its kind of nice to get started with something new, because you don't need a plan at first. You just start kind of doing it, and then when you take breaks, you figure out the plan. Its amazing how quickly you can pick things up once you get into the habit of doing it very regularly. That initial hump is always, ALWAYS a huge pain, but there's no escaping it. Failing and flailing for that initial period is how you learn, not how you fail.
1. It is very useful to let people know that the first ~500 hours of programming are the worst (not unusual for hard skills). I've seen now successful developers reduced to scream crying by the feelings lack of agency and overwhelming complexity during this period. Knowing it gets better can help them push through this phase.
2. Many people capable of being good developers respond badly to "Go build something you want to build!" because they don't actually want to build things, or the things they want to build are too outside their skill range and they feel disempowered. Giving someone a list of projects to do and textbooks to work through can be much more effective for certain people (like myself!).
Code spells, a game on steam has some of that benefit, but nothing I jave seen since has been quite as accessible as quakeC
Wow, I have never seen this.
There's a blog post that I really like titled "Find The Hard Work You're Willing To Do" - http://www.cs.uni.edu/%7Ewallingf/blog/archives/monthly/2018... (HN post w/ 76 comments https://news.ycombinator.com/item?id=26209541 )
The article concludes with...
> But I had enjoyed working on the hard projects I'd encountered in my programing class back in high school. They were challenges I wanted to overcome. I changed my major and dove into college CS courses, which were full of hard problems -- but hard problems that I wanted to solve. I didn't mind being frustrated for an entire semester one year, working in assembly language and JCL, because I wanted to solve the puzzles.
> Maybe this is what people mean when they tell us to "find our passion", but that phrase seems pretty abstract to me. Maybe instead we should encourage people to find the hard problems they like to work on. Which problems do you want to keep working on, even when they turn out to be harder than you expected? Which kinds of frustration do you enjoy, or at least are willing to endure while you figure things out? Answers to these very practical questions might help you find a place where you can build an interesting and rewarding life.
> I realize that "Find your passion" makes for a more compelling motivational poster than "What hard problems do you enjoy working on?" (and even that's a lot better than "What kind of pain are you willing to endure?"), but it might give some people a more realistic way to approach finding their life's work.
A lot of people don't have the pain tolerance for the "this isn't fun" part of software development that is necessary to get past certain plateaus of skill.
It’s mostly people taking online courses and building the projects in those courses. They’ll do a few different courses and build up maybe 10-15 smaller projects before tackling something they want to build.
When I was in community college I had to take "Critical Thinking" as a pre-req for Symbolic Logic.
We spent the first 1/3 of the class, 8 weeks, analyzing truth statements, basically and, or and not. I was bored to tears, but attendance was mandatory, so I got to see how people absolutely struggled with this, and "just didn't get it". The average score on the mid-term covering that was a low D after 8 weeks of (excruciating for me) examples. I finished in <15 minutes and got 100%.
When you are in a bubble of people who work in engineering fields, especially in tech where logic is fundamental, I think it's easy to think that logic comes naturally to everybody, but it's far from ubiquitous and reading on here it sometimes feels like some people just don't realize this, especially those deep in tech.
People want to learn the guitar|piano|violin, until they realize the amount of work it takes.
People want to get fit and jacked, until they realize the amount of work it takes.
People want to be a lawyer/doctor/engineer, until they realize the amount of work it takes.
Or they realize that they just don't really like it.
Programming isn't any different. One needs a particular mindset, and a level of patience to deal with debugging. It's not for everyone, and that's fine.
What keeps me (and I think a lot of people) from getting ripped is the sheer consistency needed. Doing anything that isn't strictly necessary for 1-2 hours 5-6 days per week every week for years is extremely difficult imo. I get knocked off course very easily, sometimes for months at a time, and I have yet to find a solution for this.
Slightly NSFW: https://www.youtube.com/watch?v=-xZQ0YZ7ls4
well yeah, those are the people who are actually lifting the weights. the rest of us get sorted into the "don't want to lift no" category
I would say you have to also be happy with/enjoy confusion and frustration.
The best advice is to get a proper CS or Engineering degree honnestly.
Studies in math education have shown that the way material is presented/courses are run has a huge impact on reducing disparities. This is especially important in CS especially when boys are encouraged from a young age to do "techy" and "geeky" things in ways that girls usually aren't. Students arrive in intro CS courses, are sat next to students who have been coding since they were 10, and are rightfully intimidated even though they could succeed in the course.
While I was at the University of Michigan, I helped a professor develop "Joy of Coding," a mini-course for high school students that focuses on sparking desire ("joy") rather than teaching CS first principles. By the end of the first lesson, students are manipulating images with code – a real "WOW!" moment. It's built on Pathbird, a platform that I built (in conjunction with UMich faculty) to run more engaging and accessible courses in computer science and computational subjects. (Shameless plug: if you're interested in Pathbird, or even just to chat, drop me a line at [email protected]).
 https://cse-climate.engin.umich.edu/wp-content/uploads/sites... (see page 8)
Just be aware that this is not everyones experience.
Many places boys are held back and girls are pushed forward.
And then afterwards boys gets told they are somehow "privileged" and would never be were they are if it wasn't for "male privilege".
Obviously this goes both ways, but there is at least some focus on it when it hurts girls.
If you try to mention the problems young innocent boys have, be prepared to get laughed out.
(I'm halfway expecting that even on HN too.)
This is experience.
If you had a cushy life, good for you. But don't tell others their experiences aren't real.
See, that post just read like negative chatter. "Folks are always doing wrong stuff." Meaningless to offer without anything concrete.
I will try without giving anything away, but you will need to help me here:
- Do you really think some people here haven't grown up with feminist teachers who took it way too far?
- How many times have you heard anything about "Girls who code" vs "Boys who code"?
- If you are actually interested and ready to see something ugly, just go back and try to read some "mens day" discussion on Twitter or I think even on HN too.
I've tried to be active in those days in a positive way. Last year I gave up. Any mention of today being mens day on company chat is immediately laughed off with something along the lines of "and so is 363 other days".
Meanwhile men die younger, have higher incarceration rates, more suicides, and gets less education.
And also the few times there is discussion it is often redirected to "how men are suffering from toxic masculinity" which is probably true but only a small problem.
I feel like she's still struggling with the basics and doesn't have much self confidence at all. And she's not dumb.
I had exactly the same exercise on my first day on uni, we had to take some robot maze pathfinder game and adjust the algorithm a bit.
As someone who had been writing code for over a decade at that point (but who was unfamiliar with Java), I still remember it was intimidating.
I cannot imagine how it must have felt for people without prior coding experience.
In hindsight, the quality of teaching actual coding at my uni was pretty poor. But coding in general is pretty hard to teach well in that setting.
1. Girls in STEM: society needs to quit telling people "math is hard, tee hee" and quit shopping in the Pink Aisle at the toy store and reinforcing that culture. Buy your kids Lego and Raspberry Pi circuit kits and see what happens.
2. CS is part coding, part science of algorithms, and part software engineering. We have to quit intertwingling all terms into the catchall "CS" bucket because sometimes "how to run excel" gets thrown in there too. Maybe best to drop the term altogether and use more descriptive names for each study.
Girls in STEM =/= Girls becoming professional programmers.
There are plenty of girls in STEM fields such as medicine, biology, geology, physics, Math, civil engineering...
The fact that not a lot of them want to be forced to sit before a computer 10 hours a day for the rest of their lives certainly isn't an issue if you asks me...
To me, the very existence of "Girls in STEM" groups is sending a weird message to girls (and I’m apparently not the only one to think that). Something along the lines of “sure you can do STEM, you’re just not good enough to do it the regular way so we created a group just for you”.
Honestly that’s the message a lot of diversity initiatives end up sending.
As a high school CS teacher, I've seen how boys can be towards girls interested in coding.
All of this swings both ways, of course, and men are deterred from positions like elementary school teacher, nursing, and secretary roles. Gender being attached to jobs is just dumb in general, and keeps a lot of capable people from doing what they'd love.
I'm surprised. I was expecting the opposite (boys wanting more girls in the classroom!).
> All of this swings both ways, of course, and men are deterred from positions like elementary school teacher, nursing, and secretary roles.
It's interesting that there's an acknowledgement that we need more male nurses (from healthcare professionals) and male elementary school teachers (from experts in the field) and yet there are zero initiatives to do so.
By that I mean money being spent toward that goal. The same way there's a will to have more "diversity" in medicine... mainly so that people of color can go serve "their people" in underserved areas (read: not very attractive or lucrative).
But in computing we’re spending a fortune and investing time to essentially… commoditize ourselves.
I think they probably want to be around girls, but most boys are social morons at that age. There is also the element of them being able to get in cheap shots to impress their friends. They don't really think of the consequences.
> It's interesting that there's an acknowledgement that we need more male nurses (from healthcare professionals) and male elementary school teachers (from experts in the field) and yet there are zero initiatives to do so.
Agreed, especially on the school front, as I think it's important for kids in schools to have a range of influences during their early years.
There is nothing about computer science or programming that is gender specific. It, ideally, should sit around 50-50, ±5%. So yes, it is a problem that it so heavily skews male.
As to why, it's multi-faceted cultural issue, with how our society treats boys and girls starting from birth. In other words, a pipeline issue.
Except the 10 hour a day part :) I believe the tendency to overwork is mostly a male thing.
But I think most important is that intro courses need to serve as jumping off points (i.e., they should be INTRO courses). Give students a taste and let them decide if they like it and want to take another bite.
Are you really better at it if you can’t retain them in the long run?
The stats you shared are interesting, but to me it seems to highlight that students are getting “weeded out” at the beginning of the course. I would be curious to attempt a correlation with High school GPA and SAT scores. Because, if lower performing students leave, regardless of gender or race, that’s to be expected. But if overachieving students of color leave and their (white or asian) peers with lower grades don’t, now that’s an interesting issue.
> Students arrive in intro CS courses, are sat next to students who have been coding since they were 10, and are rightfully intimidated even though they could succeed in the course.
I would argue the solution here is to have different “levels” of intro courses. Because the converse is also true; students that are coming in with a decade of coding and who already had an introduction to programming might assume they will be able to “coast out” courses and then suddenly realize they are falling behind their peers. And then drop out.
For example, do BIPOC students in Botswana drop out at similar rates? Do non-BIPOC students in Taiwan experience similar drop out rates? What are the classes and course materials like in these countries in comparison to the US/Canada?
What about drop out numbers from international students? For example, do Polish women studying CS at American universities drop out at the same rate as American women? For those who do drop out, do they drop out for the same reasons?
If we want to get to the root of the problem we need both more breadth and more depth in our understanding. Too often we stop at the men/women (in America) or BIPOC/non-BIPOC (in America) divides, and then provide generalized solutions which have very limit impact.
I teach all four years in high school and each year I get more females rolling up. My recent graduating classes have had more females, but still only 20% or so, but my entry level classes now are 50/50.
Oddly, every female I've had who takes the higher level CS classes has graduated with the highest mark you can get on the exit exams. They routinely destroy the boys on any test and with regard to programming skills. Sadly, some of those who take it at the lower level are pushed by their parents to take other classes at higher levels in preparation for university admission. Parents sometimes carry that bias that females should not be engineers.
It's not my experience.
When I was a kid CS/IT didn't exist where I lived.
I was a math geek who loved to occupy himself with solving problems which are useless in real life and I was actively discouraged from it by parents, teachers and even bullied by peers.
I still liked it but I tried not to speak about with anyone except some closest friends who accepted my weirdness.
From my perspective it seemed that compared to boys the girls need more acceptance are less likely to pursue something they like if they are actively discouraged from it.
They are people, not objects for your pleasure. If your comment even remotely reflects your attitude towards them, then you might as well have been telling them "GET OUT! WE HATE WOMEN!".
Do you think that maybe if you treated them like people and welcomed them to the group with patient explanations, expecting nothing, they might have hung around?
I at least try to never ascribe to malice that which can be easily explained by incompetence. Geeks are not known for their social skills. Their reclusiveness and cliquishness limits their ability to learn social skills from their more skilled peers, instead trying to learn from each other, like the blind leading the blind. Combine that with hormones and even more limited experience dealing with women as people and you get them either trying to one-up each other in some of the sort of dick measuring contests they use as social dominance displays or using patronizing gestures to treat women as if they were children.
Youtube link for easy viewing but the entire video series he helped produce is here:
Like a lot of people here, I taught myself how to code as a child in a terribly inefficient manner. I spent probably around 100 hours making games on my TI-83 - you had write a formula to figure out how to color each pixel, it was awfully slow. I spent hundreds of hours on Microsoft InfoPath making toy apps with a little scripting. Everything was very difficult, but it was insanely fun. I’m a night owl but I would wake up at 4am to start coding stuff so no one could tell me to go outside. At some point I read an introductory text that showed how to do web things, and later I got a server, and made some real-time multiplayer games by the end of high school. I didn’t know about databases so I would serialize to and from a text file. I’ve never had that much fun for such a sustained period of time since then. I couldn’t replicate it, and with the distractions of modern tech I probably couldn’t even focus that much anymore.
I’m grateful that my childhood obsession turned out to be absurdly lucrative. Best wishes to everyone, young and old, diving in for the first time!
There does seem to be an irony, that the people who were movitated by interest in the subject matter aside from money, turned it into a lucrative career. Meanwhile the people who were motivated by a lucrative career lost interest quickly. Maybe not general enough to be a good generalization, but I've seen it a number of times.
I think market demand for certain skill sets does not contradict the principle of "find your passion," but just means that some peoples' passions lead to marketable skills.
Becoming a good scientist, or professional musician, takes about 15 years, starting in middle school or earlier.
... That's what engineering school is for. At least, that's how aerospace engineers, EE and so on do it.
> I’m grateful that my childhood obsession turned out to be absurdly lucrative.
I find that, when there's passion there's generally money. People that are insanely passionate will make things happen naturally.
I was referring to the people who, say, try to switch careers to tech and go to a bootcamp to learn to code. That just sounds really hard to me, a horribly compressed timeline, and I feel like you would always be worried about gaining professional competency vs just relaxing and enjoying the ride.
I knew a guy who actually went back for an undergrad and masters in CS in his fifties. He was a classmate and briefly a coworker. He was an excellent student and won some department award, and very organized, but somehow not very good at coding things. He would get lost in a sea of sticky pads and notebooks and take two weeks to do very small amounts of work. He was let go in the end. We forget how hard this stuff can be. (Ironically to me it’s everything else that seems hard, from music to mechanics to sports, coding is just so… logical.)