B Before A
billwadge.wordpress.com
B Before A
1–10 of 19 posts
Re: B Before A
#2Re: B Before A
#3I can’t say that my skill is anywhere close to that of a concert pianist, but I also can’t say I would have ever stuck with piano if I was forced to practice that other stuff first.
Re: B Before A
#4Re: B Before A
#5Re: B Before A
#6I remember when I was little, I wanted to learn piano, and everyone recommended simple pieces for me to play. They all looked kind of boring, so I printed off the sheet music for Liszt’s Transcendental Etude No. 10 and started practicing. I can’t say that my skill is anywhere close to that of a concert pianist, but I also can’t say I would have ever stuck with piano if I was forced to practice that other stuff first.
Re: B Before A
#7Having gone through undergrad and grad school for CS, I think part of it comes not truly realizing or accepting just how much knowledge you get from taking ~45 college courses . It's taken years for me to learn a reasonable breadth and depth of this subset of computer science, (and there's way more I don't know than I do know) and I struggle with the fact that I seem unable to boil all of that into the "a-b-a-b" pattern the author describes. Start doing the thing you want to be doing (e.g, making a web app), and learn just enough of the bits you need to keep on that path. But it's much easier said that done when you're starting from scratch.
It's like the pervasive interview question of "What happens when you type google.com in your browser and hit enter?"[0] Well, a lot... where do you start?
Re: B Before A
#8I've been struggling with this concept in the context of teaching someone web development. There's just so much you "have" to know and it all seems so interrelated. Do you start with HTTP since that drives the web? If you do, do you first need to cover computer networking, IP addresses, routing? HTML and CSS aren't terrible to get started with, but are ultimately limited and [generally] aren't enough to build "some c…
1. using a simple text editor learn writing some basic (semantic) HTML and view in in the browser. At this point you do not think to much about all the fancy websites out there but just see it as an geeky alternative to a word processor (headlins, paragraphs, lists, images[and their path resolution]... no input fields yet) and get familiar with the notion that the computer can understand the plain text you write and display it as a formatted document.
2. introduce css as a way of adding visual effects to your elements. Start with font-size, color, backgrounds. Start with simple element selectors, then add class selectors. Contrast selectors vs inline styles. The learning person will have a lot of own creative ideas and will ask "how to do this and that?". Gradually only introduce additional selectors and properties if needed. Once you get into css3 territory tell a bit about the history of web browsers and how difference browsers support different properties.
3. introduce vanilla javascript. After the basic control flow concepts (variable, functions, if/else) are clear start with simple event handlers for button clicks. One step at a time disclose useful DOM apis (el.style, el.classList, el.querySelector)
Notice how up to this point no knowledge of network protocols is needed. Except the interactivity provided javascript everything could as well be done in photoshop/word/illustrator. So learning all this is no different then learning using any other application, just a bit more geeky. The adventage of doing it that way is that you can introduce each new topic with the actually motivation for which the technology had been invented.
4. Once there is a solid understanding of html/css/js I would introduce the concept of a web server (constrasting it with the local file system) by just taking it as given that you can upload files via ftp/ssh into a folder on another computer that is linked to a domain (for now it does not matter how dns,ftp/ssh,apache/nginx... work.
---
I spend much time listening to lectures (on youtube and even live in university) about topics I already know about. I enjoy how different people explain things in a different way. And I have much fun explaining things I am interested in to try how fast other people grasp the concepts. On importent impression I got is, that's sooo much easier to understand - as well as to explain - concepts in the order and context in which they were historically developed. This got especially clear to me after taking various courses on set theory, logic, computability and turing machines provided by the philosophy department after I already finished a bachelor in computer science. The philosophers focused on "How did turing come with his ideas in the context of his time" while in the CS courses that question is almost skipped.
Re: B Before A
#9Is it not unreasonable to believe that some things worth knowing or doing (A) are worth the prerequisite work (B)? If your class on data mining requires fundamentals in advanced databases why is it unreasonable to require people have taken that course to ensure the whole class is on the same page? Besides in most colleges you can sometimes skip those prerequisite courses if you can demonstrate adequate knowledge in t…
The issue is that a) it can be greatly discouraging or impossible to fit in the subject's schedule, b) a waste of time and effort if the requirement isn't that hard, c) there may be a better way: the a, b, a, b pattern, which is to say: do A until you need to do some of B, then go back to A until you need more of B, and so on.
The a,b,a,b pattern is the right answer in at least some cases.
Re: B Before A
#10I've been struggling with this concept in the context of teaching someone web development. There's just so much you "have" to know and it all seems so interrelated. Do you start with HTTP since that drives the web? If you do, do you first need to cover computer networking, IP addresses, routing? HTML and CSS aren't terrible to get started with, but are ultimately limited and [generally] aren't enough to build "some c…