Results 1 to 10 of 33

Thread: Gumberoo - Making a new learning language intepreter using FPC

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Computer science is something hard to understand without the right fundation. Indeed, you need to go from the basics. But, what are the basics? Someone can argue that you need to understand data flow, others can say you need to know about data structures, maybe some logic too.

    Just having another programming language is not enough, if you ask me. We already have many, start with our beloved Pascal, it was conceived as a learning language. Then you can put Logo, Lisp, or even Basic on the list.

    ASM is powerfull, but not good for someone who wants to learn the basics. Neither C is an option if you are learning.

    From my experience, I can tell that younger programmers avoid anything that seems extremely complicated. They like easier things, like visual programming. Unfortunately many of them learn popular and easy languages, business oriented. At least, this is the common way here in my country. New programmers learn Visual Basic or VB.NET and some SQL.

    What I found disturbing, is the lack of hacking (in the good sense of wanting to know more and experimenting new stuff). They see computers as a black boxes with an OS where you double click an icon and start a program. There's nothing under the OS hood, that motivated the need for understanding, to pursuit the never ending quest for knowledge. They are something we can call key strokers, dumb as rocks, repeating the same patterns they learn, without knowing or understanding why it works or not. They barely know about algorithms and see them as arcane formulaes, wrote by some obscure wizard, who's name is lost in the night of times.

    In my opinion, if you want to start something great like teaching good foundations for new programmers, bring them that motivation in the first place, inspire them. Then teach them some "magic" about programming science, also teach them to set reachable goals and teamwork.

  2. #2
    Quote Originally Posted by pitfiend View Post
    What I found disturbing, is the lack of hacking (in the good sense of wanting to know more and experimenting new stuff). They see computers as a black boxes with an OS where you double click an icon and start a program. There's nothing under the OS hood, that motivated the need for understanding, to pursuit the never ending quest for knowledge. They are something we can call key strokers, dumb as rocks, repeating the same patterns they learn, without knowing or understanding why it works or not. They barely know about algorithms and see them as arcane formulaes, wrote by some obscure wizard, who's name is lost in the night of times.
    QFT. There isn't better way to explain it as you have. I also find it particularly disturbing that new "development trends" focus on simply finding some combination that solves the problem without understanding the solution.

    For some reason this has become a popular approach in education sector where little effort is applied to teach students to understand how the world works (starting from basic sciences such as math and physics, then computer hardware and only then computer software and development), instead they are typically taught about what is thought to be "popular" such as Java for programming and some Adobe products for drawing; the rest is focused on business side. What you get are students who know how to count money (which they won't have), limited if any programming skills in Java, web development using Front Page and graphics design in Illustrator. This "professional" profile fits 80% of popular short-term jobs that are low paid and have tight competition to get into.

    Quote Originally Posted by pitfiend View Post
    In my opinion, if you want to start something great like teaching good foundations for new programmers, bring them that motivation in the first place, inspire them. Then teach them some "magic" about programming science, also teach them to set reachable goals and teamwork.
    I agree that the motivation is the most important factor so new developers need to have passion about learning how stuff works and love to figure out what's "behind the scenes".

    Although, having said the above, I don't share the opinion that you need to learn assembly first. This could be a typical scenario many years ago and how many of us learned, but today with mobile devices there are cases where you could have no access to assembly and/or machine code at all. However, the passion is what's important and this is why I respect Deathshadow for doing this project. It is a pity that there are very few new projects like this lately - previously we had a lot of new development tools, libraries and frameworks coming out but now only few die hards are left.

  3. #3
    Quote Originally Posted by pitfiend View Post
    They see computers as a black boxes with an OS where you double click an icon and start a program.
    This was kinda inevitable IMHO, the same things happened a few decades ago with... cars. Back then every "hacker" was a mechanic, being able to disassemble a moby or a car engine, tweak it, etc. These day you just glance the surface, and most of the car mechanics only know how to replace spare parts, change oil or tyres.

    Computers are just being commoditized, like cars, planes, electricity, tap water, phone, etc. And a myriad of things of our everyday life that used to be hacker territory in their prime.

    As computers became more complex and standardized, one just couldn't grasp or match industrially-made stuff. There used to be a time when you could assemble a decent 8 or 16 bit machine from scratch, write its OS, and have it being technologically competitive or better than off-the-shelf products. Heck you could even design your own silicon and your own 4 or 8 bits CPU from the transistors up if you were motivated enough.

    For modern hardware or software, you can at best only scratch the surface or learn specific techniques, and these days people are using tools built upon many layers of other tools. Even ASM isn't the simple environment it was, you could know not just all the opcodes but also the common binary forms for a Z80 CPU f.i., while merely knowing all the instructions that exists in x86-64 (even without AVX and other extensions) is already a challenge.

    So IMHO, it was kinda inevitable that computers were to become black boxes.

    Not knowing algorithms and data-structures is more disturbing, but hardware is fast enough that most of the developers can get away with any crappy algorithms throughout most of their programming life, and fall-back on experts for the few cases where that's enough (just like you'll call the car mechanic, the plumber, etc. from time to time).

  4. #4
    Quote Originally Posted by Eric View Post
    So IMHO, it was kinda inevitable that computers were to become black boxes.

    Not knowing algorithms and data-structures is more disturbing, but hardware is fast enough that most of the developers can get away with any crappy algorithms throughout most of their programming life, and fall-back on experts for the few cases where that's enough (just like you'll call the car mechanic, the plumber, etc. from time to time).
    Sure, but in now days, many are the ones that learns nothing from experimentation, they just sit and learn a popular language, and then call themself programmers. Programming is an Art and a Science. If you want to become a great programmer, you need to go out of the books and try and fail and try again, in a never ending cycle. Learning the basics of a language, doesn't mean you will know what you realy need to master that language.

    If students didn't get the right challenges, they just be one of many. Many students are exposed to so simple exercises, that not get out any brain juice, its just another boring exercise ruining any potencial programmer. What is needed is something that makes them to think, to analize and in the end to enjoy doing it. I remember when I was teaching data structures, I proposed a quiz where students must build a data structure to accomodate a Rubic Cube. It was the only task for a two hour test. The academic supervisor was so pissed about it, that he asks me to change the quiz for something easier. That was my last time in theaching.

    I believe in the teaching by example metod, with progressive diffilculty. You want better developers, bring them the rights tools and knowledge and make them to think. I like games like The Incredible Machine or SpaceChem, just because they have more that one valid solution and because they push your creativity and thinking limits.

    To think is the key, and being motivated too!

  5. #5
    Quote Originally Posted by pitfiend View Post
    they just sit and learn a popular language, and then call themself programmers.
    The same goes for just about every profession out there.

    Not all of programming is art and science, arguably most of the programming jobs out there have more in common with repetitive factory jobs than with high tech, research and experimentation. This may be regrettable, but it's true, and that's true even in the game industry.

    Just look at any AAA game title: you'll have maybe a handful of devs working on the hard parts of the game engine, on the core AI tech, while you'll have dozens working on scripts for the game levels, the game missions, the support tools for all the game assets and the back-office (not game related, but HR, sales, web servers etc.). Same goes for the artistic side btw, you'll have a few lead artists, and dozens that'll be working from specs with much less creative freedom.

    Quote Originally Posted by pitfiend View Post
    It was the only task for a two hour test.
    It's a bit problematic to have a single task IME, depending on previous experience on mood of the students, some can get blocked for various reason (f.i. like having never really manipulated a Rubik's cube in real life).

    Quote Originally Posted by pitfiend View Post
    To think is the key, and being motivated too!
    Indeed, but these days, the demand and jobs related to programming is too high, so there are hordes of people that pick programming as their job like they could have picked any other job, and you can't dismiss them, since they're needed. Never forget that there are many programming jobs which no programmer that considers programming as an art and science would willingly take (you included), but those jobs still need to be done by someone...

    I guess the issue of education is not really about educating the motivated and brilliant ones (those will always find a way, if you let them), but about the masses that don't really care one way or another, and for which their job is just a boring requirement of life (happy the ones that can combine work and passion!).

  6. #6
    Quote Originally Posted by Eric View Post
    The same goes for just about every profession out there.

    Not all of programming is art and science, arguably most of the programming jobs out there have more in common with repetitive factory jobs than with high tech, research and experimentation. This may be regrettable, but it's true, and that's true even in the game industry.

    Just look at any AAA game title: you'll have maybe a handful of devs working on the hard parts of the game engine, on the core AI tech, while you'll have dozens working on scripts for the game levels, the game missions, the support tools for all the game assets and the back-office (not game related, but HR, sales, web servers etc.). Same goes for the artistic side btw, you'll have a few lead artists, and dozens that'll be working from specs with much less creative freedom.
    Sure, but the project proposed try to bring more fun to teaching kids about programming and to keep their interest. I remember when I was 10 and had my first contact with a computer, the legendary Commodore 64, all the wonders I learn that time made me a wannabe programmer, guess what? now it's my profession and hobby, I enjoy it so much that I can't think of me doing anything else. In the begining I learn everything about basic, then I discovered the inmense power of assembler and a whole new universe of possibilities. Later I joined a scene group here in Peru and we made some game intros, SID players, we even fix some pal games to run on ntsc computers, we also made a magdisk with 6 issues. Nothing of that could be possible without an inquisitive mind and teamwork, something rare in now days. It's amazing when we look back on our old metods and realize that we used to apply stuff like scrum development or task management that today has fancy names, but are fundamentaly the same 30 years ago when we were kids.

    Quote Originally Posted by Eric View Post
    It's a bit problematic to have a single task IME, depending on previous experience on mood of the students, some can get blocked for various reason (f.i. like having never really manipulated a Rubik's cube in real life).
    I was aware of that in the moment. We were tree teachers, and made a common quiz for all our students (it was a hard decision to take, but we agree at last), because we show them similar examples and we knew they were ready for something like that, it was the final test.

    Quote Originally Posted by Eric View Post
    Indeed, but these days, the demand and jobs related to programming is too high, so there are hordes of people that pick programming as their job like they could have picked any other job, and you can't dismiss them, since they're needed. Never forget that there are many programming jobs which no programmer that considers programming as an art and science would willingly take (you included), but those jobs still need to be done by someone...

    I guess the issue of education is not really about educating the motivated and brilliant ones (those will always find a way, if you let them), but about the masses that don't really care one way or another, and for which their job is just a boring requirement of life (happy the ones that can combine work and passion!).
    I kwow perfectly what you mean, my personal experience starts as a business programmer. It's boring, that's why I made my decision to leave anything business oriented in the past and try something new like game development. In this new enterprise I'm learning again, I wanted to show a game for the competition, but still developing it, it takes me more time than expected but in the end I didn't regret to miss the deadline. Eventually the game will be completed, and will post it here for your enjoyment and comments.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •