Hello,
This Sunday I will have an 1 hour workshop with the teens (age 14-18) with the purpose to explain them what software developer profession is about.
I found this opportunity as a very interesting but also challenging. I plan to tell them also about FOSS and possibilities to study programming by participating in different FOSS projects.
I would be really grateful for any ideas and useful links. The audience has different educational background and inclinations, only several participants have an idea to become software engineers. But even they are not aware of what this job is really about.
Thanks in advance!
Hi Vitaly,
Vitaly Repin schreef op ma 20-11-2017 om 15:53 [+0200]:
This Sunday I will have an 1 hour workshop with the teens (age 14-18) with the purpose to explain them what software developer profession is about.
That's quite short for a workshop. What will they be doing, and how many of them will attend?
I found this opportunity as a very interesting but also challenging. I plan to tell them also about FOSS and possibilities to study programming by participating in different FOSS projects.
The angle of using Free Software as a self-study tool is good :) I am not quite sure how you could fit a proper explanation of Free Software into that hour and also use it to teach them about software engineering, though. I feel like it might be a disservice to either topic if one impeded too much on the time of the other.
Perhaps use the hour primarily to teach about software engineering, and use any extra time with individual students to bring up the ethics involved in software?
Also, pretty please make sure to mention this at least:
- Liking video games is NOT a valid reason to study software engineering, and being a video game developer is a stressful, oversaturated, underpaid job.
- You do not need to be good at maths to be a decent software engineer. Being able to communicate (write) clearly and unambiguously is a much better asset for a software engineer, as this is exactly what coding is. If you can write an accurate tutorial that describes how to boil an egg that includes all the steps required (even the often-overlooked ones!) in such a way that anybody can understand it effortlessly, and can follow those steps without having to do any additional thinking of their own, then you possess THE vital skill for programming.
The first should hopefully scare off gamers who would have a miserable time doing software engineering.
The second should hopefully invite people who aren't maths geniuses, but who are communicatively very strong.
I hope this was helpful. Thank you for introducing the wonderful world of hacking to teens!
Yours, a software engineering student
-- Carmen Bianca Bakker Technical Intern Free Software Foundation Europe e.V.
Hello,
2017-11-20 16:37 GMT+02:00 Carmen Bianca Bakker carmenbianca@fsfe.org:
That's quite short for a workshop. What will they be doing, and how many of them will attend?
It will be a workshop for a small group - not more than 12.
The angle of using Free Software as a self-study tool is good :) I am not quite sure how you could fit a proper explanation of Free Software into that hour and also use it to teach them about software engineering, though. I feel like it might be a disservice to either topic if one impeded too much on the time of the other.
Yes. I think that I just need to stress on ability to get access to the FOSS source code and play with it. And supply them with a proper links for the further reading. And as it will not be my only visit to this school, they will always have an opportunity to talk with me directly.
An objective of this session is to really introduce the profession to them. So, that the teens who are interested could continue with further, more in-depth questions and activities. By the way, are you aware about any FOSS-specific communities, projects, initiatives which can be not only interesting for this age group but to which the teens can contribute?
I thought about drone-related projects but it might be too complicated for the real beginners...
Liking video games is NOT a valid reason to study software engineering, and being a video game developer is a stressful, oversaturated, underpaid job.
You do not need to be good at maths to be a decent software engineer. Being able to communicate (write) clearly and unambiguously is a much better asset for a software engineer, as this is exactly what coding is. If you can write an accurate tutorial that describes how to boil an egg that includes all the steps required (even the often-overlooked ones!) in such a way that anybody can understand it effortlessly, and can follow those steps without having to do any additional thinking of their own, then you possess THE vital skill for programming.
Very good points, thank you!
Hi Vitaly,
Each year I go back to my highschool for a similar purpose. I tell them that there is more to software development than just coding: getting requirements, providing support, trying new stuff, drinking coffee, etc. I alway show a bit of code as a glimpse, but is quite offputting to most. On two occasions the Python language was associated to programming by the students. So if you'd like to point them to something concrete, I'd aim for Python. Last year I handed them each a double-side page with an illustrated version of my bio and concrete pointers for the students to get started with programming. I tell them I'm involved with the FSFE and why that matters, but it seems to abstract. My main message is to just try some programming.
Best of luck! Nico
Hi,
Carmen Bianca Bakker carmenbianca@fsfe.org writes:
- You do not need to be good at maths to be a decent software engineer.
Thank you for pointing that out. I completely forgot about that. I always play this little game with students where I ask them which subject they think is the most important to become a programmer and they usually think it is math. They are often very surprised when I tell them it is English and a little bit of logic.
The first should hopefully scare off gamers who would have a miserable time doing software engineering.
I am always very carful in scaring people. I completely understand what you mean and I don't disagree with your general idea, but there are plenty of people who got into coding because of games and have a lot of fun. But on a similar note: No matter which profession people are interested in, I usually recommend doing multiple internships to find out what suits you best. Even if it takes a whole year of doing nothing but different internships, it is worthwhile because starting something and then realizing halfway through it is not the right thing, takes much more time than some internships.
I sometimes even go so far as to tell them that if an intern leaves after an internship and knows they never want to touch a computer again, I see that as a success (unless it is because my mentoring was so terrible) because it means someone knows one field they are _not_ interested in.
Happy hacking! Florian
El Mon, Nov 20, 2017 at 07:06:29PM +0100, Florian Snow deia:
Hi,
Carmen Bianca Bakker carmenbianca@fsfe.org writes:
- You do not need to be good at maths to be a decent software engineer.
[...]
They are often very surprised when I tell them it is English and a little bit of logic.
But math is logic. I think building abstractions (and understanding what must have others been thinking when building theirs) , analyzing all possible cases, managing complexity and prioritizing alternatives does require mathematical intuition. I don't mean math like in primary school arithmetic, but like in theorem proving. In fact that's the math you can call math, in the sense that is the one studied by anyone who does need more math that what all people is taught.
And you need to use English (or any language, really, it's a pity that multiligualism is so poor in CS, and other areas) as a mathematician does, not as a journalist, politician, psycologist or poet. Being a good journalist does not imply being a good programmer. All jobs need talking, listening, writing and reading. The language skills are really needed but that is not particular to software engineering. At most the way you use them may be a little different from other jobs.
All jobs need some English and some math. For sw devel do you need more English than other jobs or more math than other jobs? I'd say more math. Of course, as one teacher of mine replied when his students complained of formal automata, grammars and languages being too theoretical and uneeded for work: "the only thing you won't use in work is that what you do not know" (I'm not sure whether he quoted someone). In any job, you'll use all the skills you have (ok, just most), some you didn't know you had, and some you're afraid you still don't have but had to use anyway. But if I couldn't find a software developer, I'd rather hire a mathematician than a linguist for most software development positions (and I believe if we had the statistics, that's what people is hiring).
But I stray offtopic. Yes, talk of free software. When presenting any profession you can say what kind of tasks you'll have to do and what kind of pay you can get, how hard or how easy it is to find jobs, but I think it's more interesting to explain how will you help others and how the collective work of you and others like you can change society. Software can change society for the better or for the worse. So it's worth talking of both.
On Mon, Nov 20, 2017 at 03:53:40PM +0200, Vitaly Repin wrote:
I found this opportunity as a very interesting but also challenging. I plan to tell them also about FOSS and possibilities to study programming by participating in different FOSS projects.
I would say, do not set FLOSS apart as some alternative, altruistic concept at all. Make it the default of the job description. Show that the job of a developer is to write code for money, and how it is commonplace to publish this code. Show that the majority of software is not written to be sold, but because it is required by someone, and that the job involves constantly producing new solution for everyone to use, even though the job may be paid for by a particularly interested party.
The majority of software on the planet is contract work for small and medium businesses, often in the form of specialised applications, and nowadays the mindset of the entire industry is shifting insofar that it becomes normal, to just dump the results on github, or discuss algorithms in public web forums. The kids choosing to become developers, will most likely be working in an environment like this anyway.
Show how it is a typical job for a developer to write an extension, patch, or wrapper for some FLOSS product, because a client specifically requested that, or because it will do the job, the client wants done.
Hi Vitaly,
I think this is a very good idea and I would like to thank you for this very important work!
Vitaly Repin vitaly_repin@fsfe.org writes:
I found this opportunity as a very interesting but also challenging. I plan to tell them also about FOSS and possibilities to study programming by participating in different FOSS projects.
I think this is one of the most helpful pieces of information. If they show some interest, perhaps you can also show them some projects that are especially friendly to newcomers. When I do similar events, I tell people that they just need to learn the basics of programming and then it helps to make small changes to a big program. Also, their participation will show future employers what they are able to do and that is a nice bonus. Some Free Software projects have local meetings to assign simple bugs to newcomers, so if there are any in your region, that might be a useful thing to point out.
Happy hacking! Florian