A little off-topic, but I've been teaching myself how to code. Programming is, indeed, not as complex as one thinks. But there's a massive (and frustrating) gap between building a function vs building a deployable app.
Deploying an app with strong security, user account control, caching, server side rendering, etc. involves dealing with way more issues than most coding courses cover.
I just wish online tutorials focused as much on building, say, user authentication, as they did on solving programming problems. The latter might be good for learning how to code, but the former is what you need to bring the stuff to life.
There are so many layers that pile up on a developers knowledge that I feel disoriented when I try to teach my wife.
I agree, courses should focus on that, the problem is that to START coding you need to at least know: text editor, some http,some html, some css, bash (or similar) with common commands and env setup, git, probably some sql, maybe some js, some server side language/webserver.
This to do something meaningful, and I'm not even involving a framework.
Given that, it kinda makes sense focusing on just coding to start, then you can remove that from the list.
you don't need much (or any) of this stuff in order to write desktop applications. so many people here seem to think that everything is web-based, and it really isn't.
You’re right, but if you would Google “build desktop application” for example, you’ll see Electron in the top 3.
I could imagine that many new devs will think building desktop applications requires JS, HTML and CSS.
To make things more confusing, it’s possible to use Electron with Rust, React, and/or even Python. These can be combined too, all in all it could be quite confusing for some.
i'd say that if you are learning programming, don't start with a gui framework, or with trying to write gui apps. start with something like python, using its standard libraries.
I’m on your side, using Python to draw a smiley in the terminal is a fun and good way to learn in my opinion.
I think I started with Visual Basic Scripting as a kid.
I had fun by just using Windows own Notepad.exe, writing down a script in there and saving it as a .vbs file. Now out of the sudden I made something that produced ‘scary’ pop-ups on the screen and opened and closed the CD drive repeatedly.
Later on, in some PC games I played, I got annoyed (and mesmerized) by hackers. That made me look into DLL injections and cheat engines.
I’d say to anyone that’s new to programming, find what languages are considered “easy” and find out if you can do what interests you, like in my case trying to have infinite ammo in a game.
Another idea, look into moving a servo motor (Arduino + Raspberry Pi, or just the Pi on its own). A “robot” that shoots a rubber band. I’ve made that for fun and started to add a camera into the mix, adding OpenCV to recognize people and make it shoot. It’s similar to a LAW (killer robot) but without the killing part!
My point is, do whatever project sounds fun and try to to do that with a language that is considered easy for the job.
why do you think that? i had, before retirement, been a professional programmer working for large businesses such as investment banks, and neither i or the people i worked with ever used html, js or css, or any other web technologies. the world my be wider than your experience of it.
All true I guess.
I would still expect a vcs + command line familiarity and text editor for any developer a requirement.
I would also be surprised if there wasn't an alternative for storage that needs to be learned, for another language. So even eliminating js, html and css, there is a UI toolkit of some sort to learn, a storage mechanism to learn.
Check out the Django Girls tutorial, which I've routinely run for 40-50 attendees in an all-day workshop. By the end of the day, you'll have an app that can be deployed to a PaaS like PythonAnywhere or Google App Engine:
My recommendation for new programmers who want to "get shit done" is to learn a kitchen-sink framework. Rails or Django are my usual recommendations, because these have tons of examples of user accounts, role-based access control, caching, deployment, etc.
I think this is relevant to many subjects. I know nothing about cars, but I can probably pick up a book or watch a few videos about and have a reasonable basic knowledge, but there is no way I am going to go out and tune up a car. The learning of many core principles is quite easy, but gain a breadth and depth of knowledge is the difficult part.
A lot of this only comes from the application of skills. I have been programming for a very long time and the amount of information I know I don't know is huge let alone the information I don't know that I don't know.
But then again in my day job I probably do not need to know a lot more than I know, and within that context programming is easy.
Learning the Grammar of any language is, of course not very hard; the hard part is actually the speech, and the idioms of the language, its patterns and context as well. You can probably learn Korean grammar in a day, but may take you years to master the language, and the same applies to programming :)
Having attempted to learn Korean as a kid living in Korea (but in an English language community since we lived on base, didn't get true immersion), and later on as a teen/college student (using the grammar and dictionary I still had but can no longer find), programming is a breeze in comparison.
Although it's so similar to Python I guess you might as well make this a library and teach people Python right away. Not sure the extra syntax really adds much.
It is quite different from Python. Python is more complex. Which is on the one hand an advantage, because it is more powerful, on the other hand a disadvantage, because it is more difficult to master for beginners. Easylang is more like BASIC.
I think if you only use the syntactic elements that this language has, Python isn't more complex at all.
Easylang:
a = 7
a = 9 * a
if a > 20
print "WOW!"
print "a is large."
end
print "a: " & a
Python:
a = 7
a = 9 * a
if a > 20:
print("WOW!")
print("a is large.")
print("a: " + a)
I don't think it's worth making a new language just because you added/removed some punctuation. If this was a Python library the person learning it would have the same amount of effort, but they'd know a bit of Python in the end too instead of an esoteric language.
The syntactic elements are not that different from Python, as you correctly point out. Actually, it is very similar to Lua. So I see it more as a little known but not esoteric programming language (like Brainf***).
This is really really not true. Maybe 50% of coding is high-school level. A LOT of real-world coding is dealing with stuff like concurreny, cryptography, error-handling, infrastructure, synchronization, database optimizations, et etc etc. Those are all learned dealing with real-world systems and with experience.
50% high-school level, 30% institutionnal knowledge, and the last 20 is a mix of personnal character and experience.
The difference between a so-called 10x and a 1x programmer is 99% institutionnal knowledge and the ability to go get it (and to not take shit from your coworkers/manager). That's why "10x" engineers are often assholes: in some toxic environments that's the only way to get the needed information. And as other non-asshole leave, only this guy who knows everybody and how everything work can fix 80% of your issues.
I disagree, this is very true. Concurrency/synchronization, cryptography are to be mathematically proven: those are not from 99% but from the 1%. The 99% can re-use that 1%, and no more than skills you get from high-school is required.
For instance, in the 1%, you have accurate floating point calculations: you need mathematical proofs of accuracy, usually requiring maths skills above high-school.
32 comments
[ 6.7 ms ] story [ 58.7 ms ] threadDeploying an app with strong security, user account control, caching, server side rendering, etc. involves dealing with way more issues than most coding courses cover.
I just wish online tutorials focused as much on building, say, user authentication, as they did on solving programming problems. The latter might be good for learning how to code, but the former is what you need to bring the stuff to life.
I agree, courses should focus on that, the problem is that to START coding you need to at least know: text editor, some http,some html, some css, bash (or similar) with common commands and env setup, git, probably some sql, maybe some js, some server side language/webserver.
This to do something meaningful, and I'm not even involving a framework.
Given that, it kinda makes sense focusing on just coding to start, then you can remove that from the list.
I could imagine that many new devs will think building desktop applications requires JS, HTML and CSS.
To make things more confusing, it’s possible to use Electron with Rust, React, and/or even Python. These can be combined too, all in all it could be quite confusing for some.
I think I started with Visual Basic Scripting as a kid.
I had fun by just using Windows own Notepad.exe, writing down a script in there and saving it as a .vbs file. Now out of the sudden I made something that produced ‘scary’ pop-ups on the screen and opened and closed the CD drive repeatedly.
Later on, in some PC games I played, I got annoyed (and mesmerized) by hackers. That made me look into DLL injections and cheat engines.
I’d say to anyone that’s new to programming, find what languages are considered “easy” and find out if you can do what interests you, like in my case trying to have infinite ammo in a game.
Another idea, look into moving a servo motor (Arduino + Raspberry Pi, or just the Pi on its own). A “robot” that shoots a rubber band. I’ve made that for fun and started to add a camera into the mix, adding OpenCV to recognize people and make it shoot. It’s similar to a LAW (killer robot) but without the killing part!
My point is, do whatever project sounds fun and try to to do that with a language that is considered easy for the job.
And you can write a frontend-only application with just html, css and js and nothing else, true.
Still, if you want to do anything more than writing something for yourself, you need all of that unfortunately.
I would also be surprised if there wasn't an alternative for storage that needs to be learned, for another language. So even eliminating js, html and css, there is a UI toolkit of some sort to learn, a storage mechanism to learn.
The layers are still there.
https://tutorial.djangogirls.org/en/
My recommendation for new programmers who want to "get shit done" is to learn a kitchen-sink framework. Rails or Django are my usual recommendations, because these have tons of examples of user accounts, role-based access control, caching, deployment, etc.
A lot of this only comes from the application of skills. I have been programming for a very long time and the amount of information I know I don't know is huge let alone the information I don't know that I don't know.
But then again in my day job I probably do not need to know a lot more than I know, and within that context programming is easy.
Although it's so similar to Python I guess you might as well make this a library and teach people Python right away. Not sure the extra syntax really adds much.
Easylang:
Python: I don't think it's worth making a new language just because you added/removed some punctuation. If this was a Python library the person learning it would have the same amount of effort, but they'd know a bit of Python in the end too instead of an esoteric language.But semantically it is much easier than Python for beginners. I have summarised this here: https://easylang.online/blog/easyl_pyth.html
The difference between a so-called 10x and a 1x programmer is 99% institutionnal knowledge and the ability to go get it (and to not take shit from your coworkers/manager). That's why "10x" engineers are often assholes: in some toxic environments that's the only way to get the needed information. And as other non-asshole leave, only this guy who knows everybody and how everything work can fix 80% of your issues.
For instance, in the 1%, you have accurate floating point calculations: you need mathematical proofs of accuracy, usually requiring maths skills above high-school.
Show HN: Easylang – A browser-based first programming language - https://news.ycombinator.com/item?id=33670353 - Nov 2022 (55 comments)
, which spent 12 hours on HN's front page just a few months ago. Please see https://news.ycombinator.com/showhn.html and please don't overdo this.
Other related posts:
Show HN: Particles – the URL contains the whole program code - https://news.ycombinator.com/item?id=31883209 - June 2022 (21 comments)
Easylang – An easy online programming language and development environment - https://news.ycombinator.com/item?id=29218101 - Nov 2021 (36 comments)
Monte Carlo Methods or Why It's a Bad Idea to Go to the Casino - https://news.ycombinator.com/item?id=29217539 - Nov 2021 (70 comments)
Show HN: An Easy Programming Language That Runs in the Browser via WebAssembly - https://news.ycombinator.com/item?id=28863847 - Oct 2021 (9 comments)
Blackjack Probabilities, Card Counting – Calculation and Simulation - https://news.ycombinator.com/item?id=28025561 - Aug 2021 (23 comments)
Show HN: Learn the Basics of Programming in 20 Minutes - https://news.ycombinator.com/item?id=27245000 - May 2021 (5 comments)
Show HN: A modern BASIC-like teaching and learning programming language - https://news.ycombinator.com/item?id=22841336 - April 2020 (48 comments)
Show HN: The program code is in the URL - https://news.ycombinator.com/item?id=22266563 - Feb 2020 (5 comments)
Show HN: A Basic-Like Programming Language That Runs in the Browser - https://news.ycombinator.com/item?id=21178687 - Oct 2019 (6 comments)
Show HN: A small programming course for everyone - https://news.ycombinator.com/item?id=20982002 - Sept 2019 (12 comments)
Show HN: A few simple games not only for kids - https://news.ycombinator.com/item?id=20745142 - Aug 2019 (28 comments)
Monte Carlo methods – Why it's a bad idea to go to the casino - https://news.ycombinator.com/item?id=20359100 - July 2019 (161 comments)