8 ms·
Ask HN: What to cover in a one week coding course in Athens?
Together with Founders&Coders (non-profit coding cooperative) and The Cube (co-working space in Athens), I'm setting up a free one week coding course in Athens in late August.
It's directed towards beginners who are interested in getting into web development.
The goal of the course is to get the students to a level where they are able to continue learning on their own, so that they eventually can become good enough to take on professional work or build their own products.
Given the short time frame (Monday-Friday, 10.00-17.00), it's extremely important to choose the right curriculum. We've already decided to focus on Front-end, so the language will be Javascript, but there are still a lot of choices to be made.
- What should be included in the curriculum?
- What should NOT be included in the curriculum? (equally as important, if not more important)
Git? HTTP? Web API's? jQuery? Ajax? Algorithms? DOM-manipulation? Data types? CSS? HTML?
All advice is appreciated!
PS: If you're in Greece and are interested in contributing, do drop me a mail at perhborgen@gmail.com
- musha68k 11y agoI don't know the demographics of your students but I'm always intrigued when I'm able to quickly get productive with what I'm currently learning. How about first collecting ideas on things which would actually help people (in addition to teaching)? I think Greece is a pretty high-tech society but maybe there is substantial "brain-drain" - still, I'd wager that it's mostly the economy which is broken. I don't know if it's viable but something like a node based twitter bot that picks up on calls for help on greek facebook pages (e.g. "doctor needed!") and other twitter accounts which then gets aggregated on a website? It might be a very naive idea but I've got the feeling that setups like hackathons (where all kinds of interested people can participate, people people, idea people, technically inclined people, etc) can be more beneficial to learning than a traditional "school" like environment but maybe that's just me (and my inherent learning style). I know of some fellow Austrians who might be interested in helping out as well, please reach out if you could need further help. I salute you for your actions - I feel like it's all about love and solidarity in order to overcome our global problems <3
- mrborgen 11y agoThanks a lot for the input! Project based learning has always worked best for me too, so I'm considering to run it as a "make x in 5 days" course. Using the Twitter API might be a good idea. Then they'll understand how to communicate with other services, which is critical. But it might be a bit too difficult for a complete beginner? Perhaps the final 3 days can be project based, and then use the first two to cover some basics.
- musha68k 11y agoSounds like a plan :) What would be the best way to qualitatively enhance learning during those first couple of days? One on one tutorship? The only reason why that isn't the default way of teaching is probably because it is too expensive, right?
- mrborgen 11y agoOne to one tutorship would be great, but we wont have enough teachers for that. Too expensive yes. I'm thinking lectures and tasks, and preferably more of the latter and less of the former :)
- wingerlang 11y agoNot sure, but git it probably nothing you should throw at beginners.
- mrborgen 11y agoAgreed!
- musha68k 11y agoWell, I'm not too sure - GitHub is part of how we roll in 2015, right? Git based version control with that is part of our culture now --> social programming :) Edit: OK so Jan Lenhardt's thoughts on this: "I'd stay away from it" https://twitter.com/janl/status/621667609986076672 https://twitter.com/janl/status/621667609986076672 http://writing.jan.io/2012/07/22/jsfab.html http://writing.jan.io/2012/07/22/jsfab.html
- nikosc 11y agoSelf taught Greek software engineer here, professionally working on software. I know you want to focus on the front-end but I disagree. A student needs to see how and why things are connected. This is what I suggest: ### Section 1 #Theory How do the computers communicate (aka how does the internet works). Explain how your ethernet port connects to a server's ethernet port. - Basic TCP/IP (OSI Model, Internet Routing, IP) - Internet Infrastructure (routers, server component, virtual machines, cloud) - Basic HTTP ( request-response, GET, POST, headers, cookies etc) #Workshop -Based on Wireshark sniffing. Also tools like traceroute. ### Section 2 #Theory Programming Languages and Infrastructure. - Based on the request-response cycle explain the basic components of a server (HTTP, programming language, database) - why we need a programming language. - Differentiate back-end from front-end and explain its usage (Server, DOM) #Workshop - Setup a development stack using Ansible or Puppet (to save time or do a LAMP stack installation) - Use requests.py or guzzle to send and receive some http (check it with wireshark) ### Section 3 Back-end and frameworks # Theory - Why we need back-end frameworks - What are the most important components of a back-end framework - Pick a simple framework and explain its architecture - Show some examples - Briefly talk about security # Workshop - Flask-SQL Alchemy or Silex-Doctrine based project. No js used, no Node.JS imho. ### Section 4 Basic front-end and frameworks (no asynchronous staff, no SPA frameworks) # Theory - Why javascript - Explain what the DOM is and why we care - HTML VS DOM - CSS # Workshop - Basic styling HTML+CSS - Manipulate the DOM using developer tolls - Jquery changing the DOM (based on the Flask project) ### Section 5 REST and Asynchonous and beyond # Theory - What is REST and why we need it - Why frameworks like angular.js exist
- mrborgen 11y agoThanks for all the input, there is a lot of important concepts here, which I'll definitely look into implementing into the course! However, I'm very cautious of making it too theoretical. I want the students to experience the joy of building something, as I see that as critical for developing further motivation and curiosity.
- nekopa 11y agoComing at this as a teacher (with a background in IT) I would suggest making it as student centered as you can. That would mean (unless you can meet with the students before hand) being extremely flexible with the syllabus. So you would ask the students something like: * what problem they have in life they want to solve * what they think is missing from the current web From this you can go into decomposing a problem into smaller parts and move into programming those small parts, using the tech that is best (here you teach them how to google for tech needed for certain domains) Of course, you need to open with a few early wins- eg get them to make a quick static web page, then adapt that web page into a dynamic web page with a poll where they could probably have their fellow students vote on and give feedback to their ideas from the previous questions. But the main thing is for you to find out what they want to do, and show them how it is possible via web tech. And also, remember this is the world wide web. Maybe figure out how to have people contribute even if they're not in Greece via irc, Skype, handouts etc. You may even get close to one on one tutoring if enough people like your idea. Awesome idea, and great luck to you!
- mrborgen 11y agoYeah, that would most certainly keep them motivated, as it's a lot easier when you can relate to WHY your are learning how to code. The one-on-one mentoring through Skype is a great idea. I hadn't thought of that, thanks for the tip!
- nekopa 11y agoIt doesn't even need to be 1 on 1. It could be 1 to 2, 3, 4 etc... Small, but relevant groups could work well too.