Settings

Theme

Show HN: Programming Is Easier Than Most People Think

easylang.online

45 points by chkas a year ago · 43 comments

Reader

kreeWall a year ago

I've taught code to children for years as the founder of a coding nonprofit, and this is a great way of laying out logic. Block code is very often taught to children and is a pet peeve of mine as it doesn't translate into strongly typed code for them, so we lose a number of kids in the shuffle when they believe code is too hard. Thank you for sharing!

If you were wanting to build on this, one of the greatest struggles, particularly with children, is syntax and spelling errors. They very often misspell words like "background" when we're teaching web dev, or forget their brackets and semicolons, so their code doesn't run.

If you were to make something similar but in a language they're already learning, such as Javascript, Java or Python (which, in my opinion, are the most common languages taught to kiddos), that might be useful.

Happy to chat more about this if you're looking for more on this perspective.

  • kazinator a year ago

    > doesn't translate into strongly typed code for them, so we lose a number of kids .. when they believe code is too hard

    I can't make sense out of this; what does it mean, in different words?

  • chkasOP a year ago

    Maybe a help window where you can select commands like "background" would be helpful.

Myrmornis a year ago

> When programming, you tell the computer with a special code what to do.

I'd suggest changing that to something like "with a special sequence of commands".

While one can refer to computer programs as "code", it doesn't work to refer to them as "a code" -- when people read that they'll think of a short sequence of letters or numbers, and it will be confusing.

  • chkasOP a year ago

    Thanks for the suggestion - my native language is not English.

Bjorkbat a year ago

Reminds me of a comment I made a while back reflecting on past teaching experience. Programming is easy to teach, provided you have a fairly friendly context to teach under. Teaching programming in the context of p5js and by making a bunch of simple visual / interactive "toys" is easy.

It gets complicated when you have to build websites and apps to actually solve some kind of business / consumer need, and I would argue it isn't even the programming aspect that makes it complicated. Rather, it's the fact that the thing you're building is built atop a layer of dependencies that you don't really know anything about, who in turn have their own layer of dependencies. To use these dependencies effectively, you need to know about some of the concepts embodied within them, such as a render lifecycle if we're talking about some kind of frontend js framework, knowledge that isn't precisely "programming knowledge".

And I as I mentioned before, this is why I think I'm not too worried about LLMs getting good at programming.

  • drewcoo a year ago

    Teaching in those "hard" contexts doesn't seem more difficult than mentoring/managing multiple junior engineers, possibly of several skill levels.

    Actually, teaching tabula rasa students might well be easier than teaching people to un-learn whatever made them successful with their first languages or frameworks. We all have lots to unlearn before we figure out what we should learn.

usgroup a year ago

Easier than most people think ... to get started, but there are relatively few masters compared to the number of practitioners.

cduzz a year ago

Thinking is harder than most people program.

Solving a problem is a complex process that has a small amount of programming even if it is a programming problem.

Programming is communication with both a computer and a person. Have fun!

Yakub-AlEspunj a year ago

The struggle with teaching children programming is very real. I think a major issue is that we're often too quick to jump into abstract concepts without laying a strong foundation in the basics. In my experience, kids (and adults alike) need to see the concrete, step-by-step process of how a program works before we can start abstracting away. The "what's going on under the hood" questions always come when the program is broken and you need to debug.

anotherhue a year ago

Just don't confuse it with engineering.

Software Engineering = Programming + People + Time

  • supportengineer a year ago

    I love programming. I can do leetcode problems. But I was never that great with the people part. I wasn’t very successful in a software (development) engineer role. I enjoy programming as more of a solo activity. I think this was more common in the past, but the world has changed, and it seems like you really need the social component these days to be a successful software engineer.

  • usgroup a year ago

    There was a time when Software Engineering was the application of a branch of Mathematics called Computer Science.

    • anotherhue a year ago

      That feels like a good definition of 'Programming' today? Implementing CS concepts through various levels of machine code generation.

      • AnimalMuppet a year ago

        I don't think so. I think Computer Science is the theory of computation, and the analysis of algorithms, and even the design of languages. And I think Software Engineering is the efficient[1] production[2] of larger-scale programs that adequately meet the need. It's a different discipline, though it's related.

        You could think of it as being like Chemistry and Chemical Engineering. Chemistry worries about the properties of atoms, and how those atoms affect the properties of molecules. They worry about where the outer shell electrons go.

        Chemical Engineering worries about "how do we make this stuff in multi-ton quantities without blowing up downtown". They worry about cost of raw materials, and disposal of waste products. They worry about pipe bursting strength.

        In the same way, Software Engineering needs to worry about some things that Computer Science doesn't. (Maintainability is the big one that first comes to mind, though there are probably others.)

        [1] Or "somewhat less inefficient" production, but the sentence was long enough already.

        [2] And maintenance.

        • drewcoo a year ago

          Yes, the engineering part is where the applied science meets business. It's not just a "better" job title.

      • usgroup a year ago

        I'm not sure the bulk of programmers are implementing CS concepts, except perhaps in a tautological sense. I think the Haskell sphere gives one a sense of what developing applications would look like if programmers really were implementing CS concepts.

    • kazinator a year ago

      There was a time when Computer Science was what is Numerical Analysis today.

      • usgroup a year ago

        I think there was no such time , not least because numerical analysis today leans on computer science to an extreme degree. I also think the two had very different development trajectories with some overlap (like much of maths).

Yakub-AlEspunj a year ago

What I'd like to know is what people think about the notion that programming is inherently about logic and problem-solving, but then there's the reality that most programmers spend a significant amount of their time on boilerplate code, debugging and dealing with the consequences of poorly designed software.

doublerabbit a year ago

It is, all programming is easy once you know the syntax. Loop is a loop, and a conditional is a conditional.

The hard part nowadays is setting up the environment. There's so much meta to a language now its scary.

Then everything is thrown in your face and don't explain the fundamentals.

Imagine a bucket, with blue paint. Lets store this information of paint assigned to a variable of "paint_bucket".

Most guides are: "this is a variable, lets define it as blue".. assuming you know what a variable is. Sure it's not hard to follow and understand but for those like me, I need to know.

mysterydip a year ago

I like the use of 1000 colors, with the digits being RGB. I know there's 12/15/24 bit color schemes already (for example), but having it human-readable as 0-9 digits is handy IMHO.

  • chkasOP a year ago

    If you need more colors, you can use "color3 r g b", where the values range from 0 to 1.

injidup a year ago

Sure. Then you ask a simple question. Is point A to the left or the right of the line defined by points C and D and then you find out that your code gives different answers depending on how you ask the question then you find out about floating point robustness with regards to geometric problems then you wish you had stuck to studying high energy physics.

croes a year ago

Writing a book is easier than most people think.

Letters make words make sentences make paragraphs make chapters make a book.

xnx a year ago

Programming and problem solving is generally much easier than system installation and configuration. This is why so many novices can build amazing contraptions in Excel.

shrimp_emoji a year ago

Haven't professors universally observed over the years that a flat 50% of people "just can't code"?

KwisatzHaderack a year ago

This is awesome, thanks for sharing!

ks2048 a year ago

I appreciate inventing a simple language to teach programming and this looks like a good introduction.

But at first glance, this looks SO similar to Python - just teach them to use some parentheses and colons and you'll be learning programming AND learning a very useful language.

  • chkasOP a year ago

    Python is very powerful and can therefore be quite complicated and has some pitfalls for beginners.

dvh a year ago

> print "Hello " & n$

I don't like this. It looks like nothing I've ever seen. It will make transition to real languages difficult.

  • j45 a year ago

    In the beginning the concepts of variables and merging can be more powerful than a language.

    Once upon a time I think Basic was such used as a decent beginner language to quickly outgrow.

    • organsnyder a year ago

      My dad taught me to program using BASIC back in the early 1990s. I copied code from the "More BASIC Computer Games" book and saw how the programs were put together.

kwhitefoot a year ago

Aren't you just reinventing Logo?

See, for instance, https://www.transum.org/software/Logo/

ranger_danger a year ago

> You need a browser with WebAssembly support for this website.

No thanks.

  • chkasOP a year ago

    First JavaScript, now WebAssembly - the world keeps on moving.

  • nox101 a year ago

    What's your objection and solution?

    May you'd prefer a native app that can more easily own your machine?

    • ranger_danger a year ago

      My objection is that I don't want websites running arbitrary code on my machine. My solution is for sites to stop requiring that for them to function.

      I realize that's not realistic, but I can still choose to live in my bubble, however unpleasant that may be.

    • spookie a year ago

      For objections, WASM fingerprinting techniques come to mind. Not that one can escape it nowadays.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection