We asked 15,000 people how they're learning to program
medium.freecodecamp.com
medium.freecodecamp.com
"I don't know if I want to do programming/software engineering jobs anymore"
I went through this too. You won't know unless you follow other desires you have and it sounds like one of those is to be a mom.
I am a 42 year old female that has been doing this for close to 20 years. I have 2 kids. Having kids opened me up to so many other things and actually made me better at what I do.
Don't worry about silly stats and being one of them. Worry about what you want and what is best for you.
Now I'm back in school in an unrelated field and realizing that coding can be an asset in the field. I'm working on a personal coding project as a way to get back into things.
My physics prof believes that going to school for computer science is like going to school to learn all how a shovel works, while other majors (like physics) just learn how to use the shovel in order to accomplish their goals.
I don't entirely agree with him, but it made me realize it was never coding that I stopped liking. It was coding about stuff I didn't care about that had killed my interest. (Interest in playing with technology for the sake of playing with technology had faded for me.) Now when I code, it is because the code is a step (one I find fun, enjoyable, and usually relaxing) towards another goal.
So, it might not be a phase. It must just be you are craving more.
And this is how labs end up with terrible code that doesn't follow any best practices and is completely unmaintainable.
If scientists weren't so arrogant, they might realize that if we're spending years studying something it might be a bit more complex than a shovel.
If some programmers weren't so arrogant, they might realize that terrible code that doesn't follow any best practices and is completely unmaintainable solves a lot of day-to-day problems in many many fields/businesses.
The beauty of programming and the spread of knowledge today is that you absolutely need not be an expert to make something that works and automates real work in the real world, every day.
Again, "some programmers" (not all) seem to be overzealous in defending some kind of exclusive right to develop software the right way, as opposed to the wrong amateur way.
This irks me a little bit, not meant to be a caustic comment =) sorry if it sounds a bit like one.
I'm well aware that terrible code solves many problems out there. Yes, it's great that people are able to use code to solve problems without being experts. It's also true that their code could be even better if they learned a bit more.
Just because people can do the basic level of something (it's great that they can!) doesn't mean the field is easy or useless. It's especially irksome that the primary reason physicists can hack together dirty scripts easily is thanks to the pioneering work of actual computer scientists.
Actually, the shovel analogy is quite accurate after tweaking a little.
"Just because people can do the basic level of digging holes in ground doesn't mean the field is easy or useless".
Operating an overgrown shovel called "excavator" is not an easy task and requires plenty of training to do it well, yet it's but a tool. And we would still need all the knowledge from civil engineering (totally separate field, though "engineering", not "science") to make any substantially larger or deeper hole in the ground.
All this doesn't make digging holes useful on its own.
It helps to sometimes look from this angle at programming and computer science.
Definitely start a family, but also think about keeping your career too in what ever form suits you.
It is a life of every engineer. But it is always good to choose the options that better suits you.
That you feel any conflict at all about being a mother is a testament to how sick our society has become.
My wife stopped working because she want's to be a full time mother (which is hard work by the way).
I also try to work at home as much as possible because kids grow up so fast it's easy to miss the first baby steps.
Yes we have less money to save and have to skip some things once in a while but it's worth it.
Also some of them made those projects to their main job, so they now work from home and have more time for their children :)
"I want to make a video game just like Mario!"
"I'd love to learn how to make a social network just like Twitter!"
"I'd like to learn how to make a desktop app just like iTunes!"
"I want to know how to make a programming language just like Lua!"
But the majority of software people use these days is web-based, even the desktop versions, from Facebook to Spotify to Twitter to Snapchat or whatever that's called. (I'm dating myself aren't I?)
So it makes sense that people getting into programming want to learn how to make web stuff first. But as they get deeper into learning how to make some website, they'll necessarily need to learn how to make the stuff that goes with it, like a backend server that uses a database, or a companion iOS app, or whatever.
Setting up IDE's, learning about OOP etc is probably harder than throwing some Bootstrap components together.
Ha. Haha. Hahaha.
This can appeal to beginner programmers because it gives a immediate sense of satisfaction and accomplishment vs. backend programming where you see lines of output spit back to you in a terminal.
Also non-technical people seem to value front-end development more, because they have the feeling these devs do more "user specific" stuff (-> "they understand what I want")
I marketing myself as a front-end developer, but I would consider the jobs I get offered full-stack (2/3 front-end, 1/3 back-end)
Eventually, I imagine I'll be forced to move at least into web back-end development with a modicum of front-end thrown in, but I can't imagine that ever being my main focus.
I would love to get a job doing backend development and have worked through some CS moocs and I just feel like there are so many things I don't sufficiently understand to even be considered for a backend position. I could probably handle a "full stack light" position, but get overwhelmed when I try to really understand everything going on instead of just accepting "use this gem".
... I go where the complexity goes[1]. In the age where most [web] backends are just glorified DB wrappers with an API, and the main app is on the frontend - I'm gonna stick to frontend, thanks.
Although it's starting to look more and more like I should rekindle my interest in non-research[2] machine learning and AI.
[1] complexity and users, really. You could call it "the market"
[2] with much regret, I have discovered that I am too impatient/dumb/product-focused to do well in research.
Nothing about the web inspires me or engages my attention, which has left me wondering lately whether I'm still in the right industry. Not sure what else I could reasonably do for a living, though, since I doubt my brain is going to stop working on software problems whether I'm still getting paid to work on them or not.
I say this because the cohort you describe will have started playing games at a younger age, and would have self selected itself out of this survey by venturing into small time game development on their own at an age younger than the survey respondent demographic.
So did creating games pull me into programming? Hmm, kind of, after another avenue failed. But I certainly recognize what you mean, I also know many people who'd love to make games full time (and some do! Just not all, not enough demand).
what does `cats` mean in this context? maybe a cultural thing.
I think the possible answers for this question bias towards that conclusion. Out of the five options, four refer to a time frame between now and a year from now.
Also, for the "Which learning resources have you found helpful?" I'm surprised that the official documentation for the language one is learning and "random tutorials I found on Google" aren't options. I know that's how I initially learned to code, and I was under the impression that it was somewhat common.
Python is terrible.
I learned by going to four libraries (village, town, high school and city) and reading every single book on computers and programming they had plus the entire set of manuals for every system I encountered and any additional systems for which manuals were available. That was basically the whole of my 80s. [0] In the 90s I spent significant enough proportion of my disposable income on programming books that until recently off loaded a dozen crates them they made up the majority of my material possessions by both weight and bulk.
These days I just google stuff.
Also, the selection bias in the survey probably excludes book learners.
[0] With the gaps being filled by arcade games, dial up BBSs and questionable music/fashion choices (even for the 80s). We have stereotypes for a reason.
Is it that there are few survey respondents from China? Is the survey accessible from China or blocked by the great firewall?
Just curious since the numbers seem very low and I presume there should be a far greater percentage of Chinese respondents purely by population demographics.
We had 88 responses from Chinese nationals. 137 respondents were native Chinese speakers.
We're still working on building a sandbox for the dataset, so I can't answer your questions at the moment, but you're welcome to dive in to the data. Or you could create a GitHub issue asking this and we'll try to create a visualization: https://github.com/FreeCodeCamp/2016-new-coder-survey/issues...
I've spoken to a few hiring managers who have expressed disappointment with some of the hires that they have made straight out of bootcamps (w/o prior CS knowledge or fundamentals).
Specifically, the bootcamp graduate are smart, motivated, and know their specific toolsets well. However, they tend to struggle a bit if you place them outside their comfort zone.
Is this a sentiment that others have heard through their work colleagues or friends as well?
I mean.. yeah, I think you could say that for most people. I would also think that when hiring a bootcamp graduate you would already have some inherent bias, almost like you are waiting to find their weaknesses. Basically, it's easy to place the blame for their struggle on their bootcamp degree, when it could really just be that it would be hard for anyone. Just a thought
I have done Harvard CS50 and am working through Berkeley cs61a (with the goal to then do 61b/c), the Stanford database class and reviewing maths on Khan academy. I'll likely apply for a front-end position first even though I enjoy back-end more because I don't feel like I am at the level that is expected of a back-end or fullstack developer.
These people learn about the leafs of a tree (specific tools) but don't learn about the trunk and branches that hold them (fundamental CS educaton).
"What is Free Code Camp?
We’re an open source community that helps you learn to code."
Doesn't seem like a fair representation of people who are learning to code. There are 40,000 computer science graduates per year. So perhaps 160k to 200k CS majors at any given moment. Those people learning program doesn't seem to be represented at all in this survey.
Reading their 'how we made the survey' piece (1), it looks like they asked for responses across a wide variety of media and only branded it as a 'New Coders Survey'.
So I have to wonder if they caught a bunch of people with traditional computer science education in their net. That would definitely skew the data considering the sort of conclusions that they're trying to draw about coding bootcamps.
(1): https://medium.freecodecamp.com/we-just-launched-the-biggest...
Looks like my job is secure, then
In the UK (possibly other countries), you can get a Bachelor's degree in 3 years.
*technically, the 4th is an 'honours' year, and you can graduate without honours after 3 years. This isn't that common for people who aren't struggling.
Why mention this statistic?