andioop@programming.dev
on 20 Jul 2024 15:37
nextcollapse
I was going to learn !hare@programming.dev just because it is called “Hare” and I like rabbits, but then I saw that I am not on a supported OS.
best_username_ever@sh.itjust.works
on 20 Jul 2024 17:03
nextcollapse
God. I didn’t knew that Drew was such a language nazi. If you want to write a Go clone, it must be useful for everyone. Even Emacs is available on Windows officially.
…Sorry, it felt like such a waste not to say it! The puns!
But, language Nazi? Don’t you think that’s a bit much? And it must be useful for everyone? Why? I also think it hinders growth, but it’s their project. It’s well within their right to choose whether they put in the effort to support a platform or not, regardless of the reasoning and how much effort it’d actually take.
They don’t even seem to be against the idea, they just don’t care enough to be the ones to do it:
According to DeVault, while there’s currently no plan to support non-free platforms like macOS or Windows, a third-party implementation or fork could try to make that work.
The Register
Even Emacs is available on windows, you say? I think some context is needed, here. See what GNU has to say about the availability of Emacs on proprietary systems:
However, GNU Emacs includes support for some other systems that volunteers choose to support.
Emphasis mine.
To improve the use of proprietary systems is a misguided goal. Our aim, rather, is to eliminate them. We include support for some proprietary systems in GNU Emacs in the hope that running Emacs on them will give users a taste of freedom and thus lead them to free themselves.
Sure, and that matters because…? What negative effects is this choice having on hare that go against hare’s objectives?
You seem to be treating hare as something it doesn’t want, nor care to be.
I like to describe Hare as a simple, conservative, modern update to C, with a FOSS ethos. It doesn’t try to break computer science ground, or promise to solve a million dollar problem.
Guess you could say they’re probably not friends of million-hares. Ha, ha.
And upstream Hare will not support non-libre operating systems. That’s a lot of conviction, but Hare isn’t trying to take over the world. It will coexist with the diversity of languages out there, and thrive in its own niche. In short, the Hare project develops for a libre future and for the deliberate programmer, not the corporate, the ephemeral and the reckless.
That is such a sweet reason! Whimsical decisions like this can be some of the best. Life demands a bit of whimsy every now and then.
Edit: I don’t know if you’re still interested in this, but have you considered WSL? Assuming you’re on Windows, that is. I haven’t looked into it, but I don’t see any obvious reason why it wouldn’t work.
andioop@programming.dev
on 21 Jul 2024 11:38
collapse
Hey, thanks for the suggestion! I was considering firing up a VM just for Hare, but thanks for bringing this option to my attention.
Navigator@jlai.lu
on 20 Jul 2024 15:56
nextcollapse
Because I couldn’t find any dev to help me make the game I wanted to make.
thingsiplay@beehaw.org
on 20 Jul 2024 17:35
collapse
This is actually reasonable. You didn’t know what work is needed to make a game, but your reason to learn a programming language because you couldn’t get help is absolutely not dumb in my opinion.
Actually I did know the amount and kind of work it required, as I have being working on game projects before (I’m sound designer, music composer and game designer).
It’s not really dumb yes, but a bit sad when you think about it.
thingsiplay@beehaw.org
on 20 Jul 2024 21:24
collapse
Ok, it makes it juuuust a little bit dumb, I give you that! :D (just joking). I like that you was determined to do it, even if it meant to go through all of this.
Once Miyamoto said (I have a book with interviews of Game Designers) that a Game Designer should understand programmers, in order to be efficient. Or something with those lines. So don’t think it is sad, make it a positive power you would have missed, if that would not happen. Sorry if I’m a bit too optimistic in my views.
You’re right, but it wasn’t how I took it a the time.
The underlying message I receive was that if you don’t pay enough or you don’t make people dream Steve jobs style, you won’t get anyone to work with you.
I’m lucky, I do have the drive and I can take the time to learn news things and I get to meet some wonderful people along the way. But that’s just me being lucky.
Sorry for venting, but I do think curiosity should be on both side.
I became a Game Programmer. Job market sucks right now, so I’m cleaning toilets and taking out trash at a grocery store.
But hey, on my days off I sometimes have time to work on games.
breadsmasher@lemmy.world
on 28 Jul 2024 05:54
collapse
I wanted to get into creating video games.
I ended up in software engineering for financial companies. It killed my hobby love of programming but the salary is worth it. Exceptionally lucrative, and I have never struggled for work, with great pay, bonus, benefits, equity
PM_ME_VINTAGE_30S@lemmy.sdf.org
on 20 Jul 2024 15:58
nextcollapse
To understand memes
thingsiplay@beehaw.org
on 20 Jul 2024 17:34
collapse
I needed some context, but woah this is super slick lemmy. Awesome project, like the work I’m seeing on the moderation side.
neidu2@feddit.nl
on 20 Jul 2024 16:09
nextcollapse
“Gods, that’s stupid. Why is it being done this way? Have they never heard of naming conventions? Is the language really that awfully designed?”
Learns PHP to find out more.
“Yup…”
atomkarinca@lemmygrad.ml
on 20 Jul 2024 16:58
nextcollapse
R. because it’s really easy to work on spreadsheets. i know there’s pandas for python but at that time RStudio made it look really attractive. i will do anything not to work on excel.
When I took biostatistics in college I asked to use python instead of R to do my assignments and they said no
My only real complaint at the time was using <- to define variables but I felt really strongly about it and that I wanted to use fancy snake language
Anticorp@lemmy.world
on 20 Jul 2024 21:22
nextcollapse
HEY! Is PHP ugly? Yes. Does it use stupid naming conventions? Also yes! But it’s an awesome language when you want to get shit done. There’s no other languages out there where you can just write some code in VIM directly on the server through SSH and immediately see your results without any further setup. No frameworks required, no packages, no imports, no buzzwords and hubub, just pure unadulterated utility.
FizzyOrange@programming.dev
on 20 Jul 2024 21:39
nextcollapse
Nonsense, there are tons of systems like that now. I’ve been playing with Deno & Fresh, it’s great. Trivial to install, a pretty great language, Fresh doesn’t force everything to be client side - you can easily write old school completely server side rendered sites if you want but you get to use TSX which is waaaaay superior to the old text based templating systems we used to use (Handlebars, Jinja, etc.).
It also has built in hot reloading by default so even faster than PHP. Literally hit save and you see the results.
Anticorp@lemmy.world
on 20 Jul 2024 22:30
collapse
What’s this install nonsense? I just looked up Deno and it’s part of an NPM stack. With PHP you just
Open an Apache server
Write code
???
Profit!
CaptDust@sh.itjust.works
on 21 Jul 2024 01:36
nextcollapse
Write code
???
Profit!
Accurate PHP mindset on so many levels
FizzyOrange@programming.dev
on 21 Jul 2024 07:06
collapse
I just looked up Deno and it’s part of an NPM stack.
It’s not. It supports NPM modules for backwards compatibility, but the whole point is that it doesn’t inherit the NPM tooling mess. You can go from a new Linux install to a running Fresh project in 3 commands.
Anticorp@lemmy.world
on 21 Jul 2024 07:31
collapse
Okay, I’m interested. What stack is it part of? What kind of servers does it use?
FizzyOrange@programming.dev
on 21 Jul 2024 08:22
collapse
There’s two things:
Deno: this is a replacement for Node and NPM and prettier and some other tools. So one aspect is that it’s a more modern Node, using standard web APIs instead of Node specific stuff. And the other aspect is it is more streamlined modern tooling - no node_modules, no complicated build steps, built in Typescript support, etc. In fact you can use a single file as a script, similar to Python… but unlike Python you can use third party dependencies, which makes it fantastic for stuff like CI scripts, etc. where you might have suffered with Bash or Python before.
Fresh: this is just a web framework targeting Deno. Honestly I haven’t used it much but I really like what I’ve seen so far. I always found React to be confusing and overkill for most sites, which should really be rendered server side, but also I really like the way you can compose components with JSX/TSX in a real language with full type checking. Fresh gives you both!
jjjalljs@ttrpg.network
on 21 Jul 2024 13:51
collapse
but unlike Python you can use third party dependencies,
In what sense does python not have third party dependencies?
FizzyOrange@programming.dev
on 21 Jul 2024 17:20
collapse
It has them, but you can’t use them from a single-file script. You have to set up a pyptoject.toml, create a venv and then pip install . in it. Quite a lot of faff. It also makes some things like linting in CI way harder than they should be because the linters have to do all that too.
With Deno a single .ts file can import third party dependencies (you can use any URL) and Deno itself will take care of downloading them and making them available to the script.
Some other languages have this feature to certain degrees. E.g. I think F# can do it, and people are working on it for Rust, but Deno is at the forefront.
jjjalljs@ttrpg.network
on 21 Jul 2024 18:05
collapse
Oh I see what you mean. Interesting.
As you allude to there are tools in python to help (I tried pex briefly once, for example). It hasn’t really been a pain point for me but I can see why people would spend time on it. I imagine this strategy has its share of tradeoffs and gremlins.
FizzyOrange@programming.dev
on 21 Jul 2024 18:49
collapse
there are tools in python to help
I haven’t actually used pex but it doesn’t look like it solves this - it’s more of a way of distributing full programs. The .pex files aren’t editable, which is something you need for this use case.
I imagine this strategy has its share of tradeoffs and gremlins.
As far as I know there are no downsides. It’s basically win-win.
jjjalljs@ttrpg.network
on 21 Jul 2024 19:19
collapse
Nighed@feddit.uk
on 22 Jul 2024 09:03
nextcollapse
PHP is native in Linux then?
How is that different to something like powershell?
Anticorp@lemmy.world
on 22 Jul 2024 16:05
collapse
You can’t run a website off powershell. PHP can render HTML to the browser, so it’s perfect for website development. 99% of the web was PHP back in the wild West days.
key@lemmy.keychat.org
on 22 Jul 2024 12:21
collapse
no other languages out there where you can just write some code in VIM directly on the server through SSH and immediately see your results without any further setup
laughs in coldfusion
onlinepersona@programming.dev
on 21 Jul 2024 08:14
collapse
PHP is a scourge. I wish less server software were written in it. You’ll stumble upon some opensource project with a cool UI, run into a problem and find out the docker container has apache, postgres, and PHP in it. Debugging PHP is such a pain and setting up a developer environment is such a hassle because they haven’t discovered docker for dev envs yet.
Donnywholovedbowling@lemmy.world
on 20 Jul 2024 16:15
nextcollapse
I wanted to make a scripted version of pinochle because my friends and I play it a bunch on tabletop sim and there was nothing available, so I learned LUA
I learned pinochle as a kid, but can’t remember how to play now.
I learned Lua as a programming student but can’t remember how to use it now.
floofloof@lemmy.ca
on 20 Jul 2024 16:16
nextcollapse
To get a career in IT.
Anticorp@lemmy.world
on 20 Jul 2024 21:23
collapse
That’s a pretty solid reason.
BeatTakeshi@lemmy.world
on 20 Jul 2024 23:13
collapse
Close your eyes to feel it
CaptDust@sh.itjust.works
on 20 Jul 2024 16:21
nextcollapse
I inherited a C# code base that had a custom runtime loader for APL modules. Over half of the app was actually written in APL with C# just hosting the API… so yeah, had to learn that. I don’t recommend it but some people seem to really love the language. Those people are often statisticians, not programmers.
SpaceNoodle@lemmy.world
on 20 Jul 2024 16:25
nextcollapse
I had totally forgotten until this post reminded me: I originally started to learn Python in order to fix a crossword puzzle program.
best_username_ever@sh.itjust.works
on 20 Jul 2024 17:01
collapse
That’s a good reason. I used my Java skills to crack a shareware (a solitaire game) because I had no money.
SpaceNoodle@lemmy.world
on 20 Jul 2024 17:08
collapse
Now you can use Java to have lots of money
FizzyOrange@programming.dev
on 20 Jul 2024 16:37
nextcollapse
Maybe not dumb but I’ve definitely been forced to at least partly learn a few terrible languages so I could use some system:
PHP so I could write custom linters for Phabricator. Pretty successful. PHP is a bad language but it’s fairly easy to read and write.
Ruby so I could understand what the hell Gitlab is doing. Total failure here, Ruby is completely incomprehensible especially in a large codebase.
OCaml so I can work on a super niche compiler written in OCaml. It’s a decent language except the syntax is pretty terrible, OPAM is super buggy, and I dunno if it’s this codebase or just OCaml people in general but there are approximately zero comments and identifiers are like ityp, nsec, ef_bin… The sort of names where you already need to know what they are.
BrianTheeBiscuiteer@lemmy.world
on 20 Jul 2024 16:42
nextcollapse
Learned Python to try and hack into a porn site.
best_username_ever@sh.itjust.works
on 20 Jul 2024 17:05
nextcollapse
I learned Python and regular expressions to download hundreds of pictures from 4chan. Good times.
glitches_brew@lemmy.world
on 20 Jul 2024 22:21
nextcollapse
Anticorp@lemmy.world
on 20 Jul 2024 21:18
collapse
Well, were you able to hack into the porn site? Python seems like an odd choice for hacking a website.
xuv@lemmy.blahaj.zone
on 20 Jul 2024 23:36
nextcollapse
I almost did this for a different reason, people choose python because it has some pretty good web automation/scraping libraries to work with.
BrianTheeBiscuiteer@lemmy.world
on 20 Jul 2024 23:53
collapse
This was over 10 years ago, maybe 20. I wanted to pick up a new language and I seemed pretty driven, at the time, to hack a certain site. I think I gave up on it and as usual I enjoyed writing the code more than using the app.
It didn’t use webscraping or anything too sophisticated. I just applied a few dictionaries I found online and ran everything through a series of anonymous proxies. Very brute force.
Anticorp@lemmy.world
on 21 Jul 2024 02:27
collapse
Ha! I tried the same thing with some random sites like 20 years ago. I managed to get into a few of them and emailed the registered owner that they needed better security.
chameleon@fedia.io
on 20 Jul 2024 16:46
nextcollapse
Needed to write a syntax highlighter for VB.Net but I couldn't find any weirdly written edge cases online, so I had to make some myself.
slazer2au@lemmy.world
on 20 Jul 2024 16:48
nextcollapse
Python. To write mods for renpy ‘games’.
FrostyCaveman@lemm.ee
on 20 Jul 2024 16:50
nextcollapse
To have an easier time with another language (which the first language’s valid syntax is a superset of) which it papers over the faults of. And usually it’s pretty thin paper.
best_username_ever@sh.itjust.works
on 20 Jul 2024 16:59
nextcollapse
Ruby because it was the first popular Japanese language. I wrote a few useful scripts and it was nice. Then it was swallowed by Rails, and killed by Python. No one uses it around me but it was fun.
TropicalDingdong@lemmy.world
on 20 Jul 2024 17:07
nextcollapse
Learned flash in the 90’s to make terrible games.
Kojichan@lemmy.world
on 20 Jul 2024 17:10
nextcollapse
Might not be dumb, but I learned programming to create things and learn how things worked. Started with entering in hundreds of lines of BASIC printed in magazines, including debugging font typos.
Then learned MUF, or Multi-User Forth, a stack-based text language for creating text based dungeons, and managed to stop some malicious users spying and people’s privacy in the server.
Every so often, I pick up a new language to test it to see if it does cool stuff or help me further learn more about how things function.
thingsiplay@beehaw.org
on 20 Jul 2024 17:32
nextcollapse
Somewhere before 2010, when I was still on Windows on my laptop and using AutoHotkey, I learned a dialect of Basic. To write an application starter on my USB stick, when going to internet cafes. The starters job was just to run my AutoHotkey script with AutoHotkey interpreter. I never used the Basic language again. I actually forgot which dialect, maybe FreeBasic.
PortugalSpaceMoon@infosec.pub
on 20 Jul 2024 18:00
nextcollapse
I wanted to see what the COBOL job market looked like. So I learned the superficial basics of COBOL in a day or two, just so I wouldn’t be a complete fraud when I put it into my linkedin profile as a skill to see what happens.
Sentient_Modem@lemm.ee
on 20 Jul 2024 18:58
collapse
How did that turn out for you?
PortugalSpaceMoon@infosec.pub
on 20 Jul 2024 21:26
collapse
Didn’t get a single reqeust, so this had less impact than expected. Thought there was more old rusty companies looking for a non-retired engineer.
FizzyOrange@programming.dev
on 20 Jul 2024 21:46
collapse
Yeah I think that’s mostly a myth. When I looked up salaries they were definitely good (for programming; amazing for the average person), but not “I would write COBOL for that” good.
There aren’t really that many old COBOL systems around. I think it’s mostly just over-reported because you can write an article about how some government department still uses COBOL but you can’t write about one that switched to Java.
nobleshift@lemmy.world
on 20 Jul 2024 18:23
nextcollapse
Profit.
BehindTheBarrier@programming.dev
on 20 Jul 2024 18:31
nextcollapse
It’s hyperbole, but I learned my first language because I wanted to be a god.
I saw these magic windows that popped up, that had buttons, and I was jealous of these godly creators holding the power to make them do as they wanted. So, I learned it myself. I peeked at another program I was using, it was using python and PyQt so that’s what I set out with to become my own god of the desktop.
My first program was a GUI wrapper around the YouTube-dl CLI, and I still use it frequently.
Anticorp@lemmy.world
on 20 Jul 2024 21:20
collapse
Hey, that’s similar to me! Except I’d call it a wizard rather than a god. I wanted to learn the cryptic combinations of words that willed things into existence in the digital world. 23 years later I’m a senior professional, doing the same thing, and still learning too.
I was playing this really simple mobile phone game, where you basically go on these mining trips, then you tap the screen as quickly as possible. So, I thought to myself, I wonder if there’s a way to simulate screen taps, to tap at superhuman speeds.
I found an app for that, this app had its own scripting language. Admittedly, there weren’t many concepts to learn in this language, but wait, there’s more.
Then I thought, maybe I can also automate the menus, between the mining trips.
But this language didn’t have support for multiple files, nor functions, you couldn’t even use labels in your goto statements, meaning my code started to get quite complicated.
So, I actually sort of implemented support for goto labels / shitty functions within my program.
Basically, at the start of the file, I had an if-else block, which read the value of a variable and based on that, it would select between different goto statements.
So, if I wanted to “call a function”, I would set the variable to the function/label name and then goto 0.
If I remember correctly, I did still need to manually update the line numbers in that lookup table at the start, but at least, I didn’t have to do it everywhere in the code anymore.
And yes, I did manage to completely automate grinding that game, using this shitty scripting language.
It was an offline game, and not a good one, I didn’t actually care about making progress in it. But scripting it was significantly more fun than playing it myself.
There’s a game called something like “oh no the farmer is gone” which is about programming a little robot to harvest the fields and the programming is built directly into the game
electric@lemmy.world
on 20 Jul 2024 20:51
nextcollapse
Objects weren’t properly saving in a game, so the developer showed me what code I could copy paste to enable objects to save. Much like Thanos, “fine, I’ll do it myself”.
Anticorp@lemmy.world
on 20 Jul 2024 21:17
nextcollapse
It occurs to me I’ve literally never tried to play my music library through Roku. I usually just cast to a speaker with my phone. Is it part of the main branch?
Well I thank you for your contribution regardless. Roku is all I’ve got, so it helps to have people like you annoyed enough, and knowledgable enough to contribute.
I learned Minecraft’s data pack language for the same reason. 20w14infinite needed a Portal gun, I found a working one, but tweaked it to my liking
DumbAceDragon@sh.itjust.works
on 20 Jul 2024 22:51
nextcollapse
Had to learn Javascript for web development class.
In all seriousness, I found out about Nim from the debug log of a discord bot and decided to give it a shot. It’s now my favorite programming language.
_Lory98_@discuss.tchncs.de
on 20 Jul 2024 23:34
nextcollapse
I learned a bit of FORTH because an old Minecraft mod (Redpower 2) had a computer that could run it.
I wonder how many people learned Lua for this reason (CC and friends).
boringbisexual@lemmy.blahaj.zone
on 22 Jul 2024 15:50
collapse
I did! I picked it up specifically for CC, then I found a window manager that was also configured in Lua.
Ogeon@programming.dev
on 20 Jul 2024 23:47
nextcollapse
I was a teacher’s assistant in beginner’s programming at university for a bit. I expected them to learn C, which I knew enough of, but I got assigned to a group that learned Python instead. I had never used Python at the time. I ended up having to speed learn it while trying to teach it, to not be completely useless.
SmartmanApps@programming.dev
on 21 Jul 2024 06:42
nextcollapse
Ogeon@programming.dev
on 21 Jul 2024 09:00
collapse
That’s silly. Luckily, I don’t think this was the same situation. This was at a university and they had classes with other languages. The beginner classes were split into two variants, where some students (mostly CS students) learned C, and other students (economy, etc.) learned Python. I suppose they figured it was more useful to them or something.
SmartmanApps@programming.dev
on 21 Jul 2024 18:04
collapse
That’s silly
Agreed.
This was at a university
As I said elsewhere, I had a much more sensible approach when I went to Uni - we learnt Pascal in first year, and then did OOP in second year, which follows the tradition of only teaching one concept at a time.
Kissaki@programming.dev
on 21 Jul 2024 07:28
collapse
Sounds like you had the wrong indent after they shifted you around.
Starb3an@sh.itjust.works
on 20 Jul 2024 23:52
nextcollapse
Arduino and Python to create a sexy machine that syncs up to videos. Oh I also made the sex machine part, like machining metal parts and soldering electronics.
bamboo@lemmy.blahaj.zone
on 21 Jul 2024 04:24
collapse
please tell me you created a dick object for the project which is exactly the same as a dict object.
Kissaki@programming.dev
on 21 Jul 2024 07:31
collapse
error: dict not found. Were you looking for dick?
Reddfugee42@lemmy.world
on 21 Jul 2024 00:59
nextcollapse
Income
Mikina@programming.dev
on 21 Jul 2024 03:56
nextcollapse
We found a RCE on a server during pentest. In KOBOL.
Learning how to make a reverse shell in KOBOL was pretty unique experience. Thankfully, we found another path to DA ajd didn’t have to continue, but maan, learning KOBOL, especially of your use-case is niche, is borderline esoteric.
Kolanaki@yiffit.net
on 21 Jul 2024 05:12
nextcollapse
I learned a bit of KOBOL after hearing it was the weirdest, hardest, and most unused programming language back in highschool. But only really enough to do a hello world and other very simplistic programs. More because finding resources at that time was difficult.
JackbyDev@programming.dev
on 22 Jul 2024 03:38
collapse
I tried to learn some back around 2019. I don’t remember why, but there was something going on relating to it at the time? Maybe it was as simple as me reading an article about Cobol devs retiring.
SmartmanApps@programming.dev
on 21 Jul 2024 06:39
nextcollapse
I, as a teacher, have had to learn several languages, but that’s not the dumb reason bit. The dumb reason bit was WHY I had to teach Python, which once I learnt it (so I cold teach it) I could see right away was NOT a suitable language for teaching to Year 7 (who up to now have only used Scratch). I was teaching the U.K. curriculum, and I found out that teaching C# was also allowed - still not ideal, but better than Python for learners -but pretty much all schools were teaching Python. When I dug into it I found I was far from alone in not wanting to use Python… and I also found out the reason schools were teaching Python. It was because from an ADMINISTRATIVE point of view it was much easier for the schools to have us teaching Python. In other words, the office-workers who didn’t have to teach it, only had to admin it, were forcing everyone to teach Python because they wanted the lower overhead that came with installing/maintaining that vs. C#. ARGH! All the teachers who wanted to teach C# were running into exactly the same road-block.
iknowitwheniseeit@lemmynsfw.com
on 21 Jul 2024 07:03
nextcollapse
I’m curious why you think Python is unsuitable. Both of my kids picked up Python pretty easily.
SmartmanApps@programming.dev
on 21 Jul 2024 07:35
collapse
object-oriented (this is their FIRST proper programming language - they don’t even know how to write loops yet and you want us to teach them OOP at the same time?! And as it turns out, I had one student who literally could NOT work out how to use a loop - kept writing 20 variables for 20 iterations. i.e. her variables never varied!)
variables are weakly-typed (use it for anything, whether it’s what you first used it for or not, Python doesn’t care)
indentation has to be exact (i.e. no brackets, just exact indentation). I had one student whose program wasn’t working, and it even took ME a while to find what was wrong with it (a missing space).
I think there was more, but that’s what I remember off the top of my head. If it was up to me then I would’ve used Pascal - that’s what it’s designed for! But at least C# has strongly-typed variables, and doesn’t care about your indentation (and unfortunately there was no non-OOP language choice available - I’m not sure how this got in the curriculum when every teacher knows you only teach one concept at a time). As I said, many other teachers felt the same way, but couldn’t get it past their school admin’s.
SmartmanApps@programming.dev
on 21 Jul 2024 07:37
nextcollapse
Notably, when I did my C.S. degree, they knew to only teach one concept at a time. We learnt Pascal in first year, then did OOP in second year.
onlinepersona@programming.dev
on 21 Jul 2024 08:05
nextcollapse
Why do you even have to mention OOP? C# is object oriented too. Would you start explaining OOP too when teaching C#?
Python is comparatively easier as it’s nearly literally pseudo-code. There’s no need to even write a main function or functions at all. It uses less characters too e.g no need for semi-colon, brackets in for loops and if statements
As for indentation being exact, IMO that’s on you. Beginners should be given a proper development environment to work in that helps them as much as possible. Modern editors and IDEs point out syntax errors and indentation errors are incredibly basic. If they are working in an environment that doesn’t even point that out to them, they have been setup incorrectly.
SmartmanApps@programming.dev
on 21 Jul 2024 08:19
collapse
Why do you even have to mention OOP?
Because I was saying why it’s a bad choice to teach to Year 7. I already said if it was up to me I’d teach them Pascal.
C# is object oriented too
Yes, I know, but in this case it’s the lesser of 2 evils, for the other reasons I gave.
Python is comparatively easier as it’s nearly literally pseudo-code
And as I just said to someone else, students even struggle with pseudo code.
e.g no need for semi-colon, brackets
And I already said that’s one of the drawbacks - indenting has to be EXACT or your program doesn’t work anymore.
As for indentation being exact, IMO that’s on you
It’s not on me - it’s in the language itself to begin with. I have no control over it.
Beginners should be given a proper development environment to work in that helps them as much as possible. Modern editors and IDEs point out syntax errors and indentation errors are incredibly basic
Now see if you can get the school admin’s to install those ones. As I said, that’s the root issue to begin with - the school admin’s.
If they are working in an environment that doesn’t even point that out to them, they have been setup incorrectly
Now see if you can get the school admin’s to fix it. Welcome to the struggle the teachers face in teaching what WE want to teach them.
Eezyville@sh.itjust.works
on 21 Jul 2024 15:22
collapse
It seems you did the best you could with what you had to work with. It’s a shame the other users don’t understand that you didn’t get to choose the tools your students could use and instead went with what they, in their freedom to choose and install what they want, would have used to teach. I can imagine you only had notepad and Idle to use.
SmartmanApps@programming.dev
on 21 Jul 2024 18:47
collapse
Thanks. From memory we were using repl.it, or something very similar. This made it easy for me to look at their code when they had problems (and even then, as I said to someone else, it was quite a while before I realised one of them simply had the wrong indentation on one line - I kept looking at the code and thinking I couldn’t see anything wrong with it, then eventually I realised there was a wrong indentation. If it took me that long to realise, then of course that’s something students are going to struggle with).
uthredii@programming.dev
on 21 Jul 2024 09:31
nextcollapse
object oriented
Python does have OOP but you are not at all forced to use it. You can write code in a functional or even procedural style.
typing
I do hate that python doesent have proper support for typing but I think weakly typed variables will actually help beginners as it is less to think about to start off with.
indentation
I think there are pros and cons here. In other languages it is considered good style to use indentation anyway.
I’m sure it is difficult to teach a large class like that though. It was hard enough for me to learn with a much more favourable teacher to student ratio than you probably have. Sorry but honestly I do sympathise with admin as well.
SmartmanApps@programming.dev
on 21 Jul 2024 18:21
nextcollapse
Python does have OOP but you are not at all forced to use it.
Not as an individual, but I’m talking about a situation precisely where the individual choices of teachers are ignored, in some cases by school admins, in some cases by faculty choices. Fortunately I also ran a computing club, in which I was autonomous with how I ran it, and I taught my computing club students C#/MAUI… but even then still saw some of the issues you run into with teaching students. e.g. I told them to install Visual Studio ready for next week, showed them where it was, what workloads to install, and then the next week one of the students had installed Blend for Visual Studio, not Visual Studio. “Look, it has Visual Studio in the name!”. (sigh)
I think weakly typed variables will actually help beginners as it is less to think about to start off with
No, that’s exactly the problem to start with. Another rule of teaching (see below for the full list I’m quoting these from) is “never let the first impression be a wrong one”. If you let students think they can use variables for anything, then you run into problems when they can’t. This is why teaching them with strong types first is better - they learn you need to be careful with how to use them, THEN maybe you can let them have some more freedom like Python allows.
In other languages it is considered good style to use indentation anyway
Yes, but in those languages it’s optional. In Python it’s mandatory, and if someone’s code isn’t working it’s far easier to spot a missing bracket than a missing space.
Lots of us have the experience of being the kid in that situation though. I learnt python in secondary school.
JackbyDev@programming.dev
on 22 Jul 2024 10:31
nextcollapse
They’ve been through the other side of this experience multiple times though.
SmartmanApps@programming.dev
on 22 Jul 2024 17:56
collapse
have the experience of being the kid in that situation
Which kid? The gifted one, the one who didn’t understand loops and used 20 variables for 20 iterations, the one who didn’t understand how to write pseudo code, the one who was dyslexic,…?
I learnt python in secondary school
Which Year? I didn’t say it wasn’t appropriate for high school, I said it wasn’t appropriate for Year 7 as a first programming language.
SmartmanApps@programming.dev
on 22 Jul 2024 19:57
collapse
Lots of us
Also, who do you mean by “us”? Programmers? Not all the kids in class want to be programmers, and this isn’t a programming class - it’s Computer Science. We cover topics like hardware, the Internet, Cybersecurity, the history of computers, data analytics, etc. Not only do not all of them want to be programmers, not even all of them want to be in I.T. - they’re just, you know, interested in computers (or in some cases they’re in the course because their parents think they should be in it - I’ve had a couple of those students). We only spend 6 weeks on programming (we spend 6 weeks on each topic), or sometimes we might do it twice and spend 12 weeks on it, and that’s it for the year! You can’t teach Year 7 kids algorithms, pseudo code, basic programming concepts (variables, branches, and loops) and OOP as well in one year. Especially when not even all of them are interested in programming. It’s just one topic we cover. OOP is something that shouldn’t be covered until at least Year 8, preferably Year 9 (by which stage students have decided if they want to continue on this path or not, and the ones we still have left we start getting more hard-core… which is where the “us” I presume you’re referring to come in).
jjjalljs@ttrpg.network
on 21 Jul 2024 13:46
nextcollapse
You can use types in Python and your tools will generate warnings
def something(a: int) -> int:
return “potato”
will turn yellow in an IDE more advanced that notepad.
Most editors will also show a red line where the indentation is wrong.
SmartmanApps@programming.dev
on 21 Jul 2024 18:41
collapse
Most editors
Same thing still applies - you need to get it past the school admin gatekeeper.
jjjalljs@ttrpg.network
on 21 Jul 2024 19:08
collapse
If you’re writing any language in like notepad, you’re going to have a bad time. I accept your point that school administration may be making questionable choices about what software is installed, but that’s not a problem unique to python.
SmartmanApps@programming.dev
on 21 Jul 2024 19:51
collapse
that’s not a problem unique to python
No, but it’s a bigger problem for C# than is is for Python (though this is changing now), so all the U.K.-based schools were teaching Python, rather than the more-appropriate C#. That was my original point - that’s the dumb reason I had to learn Python, school admin’s wanted the lower overhead of the worse language.
I learnt to program in python (in year 12). It was pretty good:
less intimidating than the languages full of braces/brackets.
as it’s also a scripting language, you can ignore OOP and just write code.
has lots of kid friendly drawing libraries (tortoise.py anyone?) so they can make things they can see on screen etc
SmartmanApps@programming.dev
on 22 Jul 2024 09:22
collapse
I learnt to program in python (in year 12)
Yes, it’s fine for Year 12 - you’ve already learnt all that stuff by then - it’s NOT fine for Year 7 as a first proper programming language, when they haven’t learnt ANY of that stuff yet.
Nighed@feddit.uk
on 22 Jul 2024 09:28
nextcollapse
I leant from scratch as my first programming language in year 12.
They tried to teach OOP in year 13, but I didn’t really get it until university.
This was years ago at this point, I think they introduced the programming GCSE the year after I did my A-Levels.
A scripting language like python is the ideal language to start with because you can JUST learn the programming bit without worrying about OOP, project structures, compiling etc.
SmartmanApps@programming.dev
on 22 Jul 2024 09:41
collapse
I think they introduced the programming GCSE the year after I did my A-Levels
I was teaching the IGCSE, to students all over the globe.
you can JUST learn the programming bit
But NONE of the resources which have been provided to schools do it that way - they ALL use OOP. If that’s what your faculty has chosen to use, then that’s what you have to use. It comes back to what I’ve been saying all along - the schools are dictating to the teachers what they are to teach, and it’s NOT based on what’s best for the students educationally, but what has the least admin overhead for them. That’s the stupid reason that I had to learn Python - admin concerns!
Oh, ok, that’s annoying then. One of those cases where it feels like the person putting the course together has never actually interacted with children?
SmartmanApps@programming.dev
on 22 Jul 2024 09:58
collapse
Yes, that’s exactly what I’m saying. The decision was made for us by school admins, NOT CS teachers. That’s why it was the stupid reason I had to learn Python.
SmartmanApps@programming.dev
on 22 Jul 2024 10:01
collapse
Oh, I should clarify that. Teaching Python was decided for us by admins. The course material MAY have been designed by a teacher, but then also it may have been designed for Year 9 say. It’s inappropriate to be teaching it to Year 7 as a first proper programming language, but that’s what we had to do (otherwise then we would also have to make all our own resources to do it, and don’t forget at this point that I didn’t know how to program in Python myself yet! So yes, I had to use the already made resources, which had OOP in it).
SmartmanApps@programming.dev
on 22 Jul 2024 09:33
collapse
P.S. the students aren’t going to have any tests where it matters until Year 10, and the curriculum even says that at least 2 languages must be taught (in my case we chose HTML as the second language, because…), and so even though many teachers would like to teach their students C#, the schools simply aren’t LETTING them do that. They don’t want the admin overhead that comes with teaching C#, so it’s Python and… nope, it’s just Python (and so then you have teachers opting for a second language like HTML, cos they can’t get their school/faculty to buy-in on teaching C#, simply because they don’t want the admin that comes with it. The fact that it’s a better language to learn isn’t even considered).
Is the fact that C# produced executables also a problem? With python you can ‘protect’ non lab computers at the school by just not installing the python runtime on them. Teach them c# and I guarantee they will be making executables to cause trouble.
Generally agree with you that teachers should be able to choose at least one of the languages to teach. basic web dev stuff is probably pretty useful to them though if it includes JavaScript?
SmartmanApps@programming.dev
on 22 Jul 2024 09:51
collapse
Is the fact that C# produced executables also a problem?
Trust me, the conversation never even gets that far.
just not installing the python runtime on them
We weren’t! We were using repl.it (or something very similar). I don’t know what the story was at other schools, other than many other teachers also wanted C# but had to do Python (it was when I came across this that I finally accepted defeat in trying to get another language in instead of Python. I wanted to start with Pascal and then do C#. In the end I had to do HTML and Python. i.e. the status quo).
Generally agree with you that teachers should be able to choose at least one of the languages to teach.
We’re supposed to be able to choose both languages, but school admins are taking away one of our choices.
if it includes JavaScript?
I wouldn’t do that at the same time as HTML - maybe later, separately. As I’ve said, as teachers we only teach one concept at a time.
SmartmanApps@programming.dev
on 22 Jul 2024 09:55
collapse
P.S.
teach them c# and I guarantee they will be making executables to cause trouble
No, you’re overestimating the students ability. I taught C# in coding club (they were mostly around Year 8), and it was a struggle just getting them to understand basic programming concepts (imagine having to explain MVVM to them - they’re not good at understanding abstraction) - they wouldn’t have had a clue how to turn it into a malicious exe.
I’m really surprised to hear that teaching C# to 7th graders is easer than teaching them python. Python was invented to teach. It looks like pseudo code. I have almost zero experience in teaching so I trust your experience. But can you elaborate a little? What makes teaching C# easier?
SmartmanApps@programming.dev
on 21 Jul 2024 07:50
nextcollapse
I just replied to someone else with the same question. Less can go wrong (but in either case a non-OOP language, like Pascal, is a much better starting point. You should only ever teach students one concept at a time).
SmartmanApps@programming.dev
on 21 Jul 2024 07:52
nextcollapse
As it is, when we had to teach them HTML, the resources we were given were using PHP at the same time, so I scrapped that and just taught them HTML myself. We never teach more than one concept at a time, so I don’t know how these other things found their way into the curriculum/resources.
SmartmanApps@programming.dev
on 21 Jul 2024 07:54
collapse
It looks like pseudo code
P.S. as a teacher, I can tell you I have seen students who even struggle to write pseudo code. It’s like trying to teach them Greek (not all students, but some, and we need to cater to the lowest common denominator).
SmartmanApps@programming.dev
on 21 Jul 2024 08:01
nextcollapse
Oh! I just remembered this video. If you wanna know how students can struggle with pseudo code, watch the video. I use this video when I teach algorithms (students are even worse at that than pseudo code).
apolo399@lemmy.world
on 21 Jul 2024 11:28
collapse
I hate having to cater to the lowest common denominator, I had to struggle with un-engaging classes all throughout elementary and middle school. I’ve seriously thought about becoming a teacher so I’d like to ask, in your experience, what happens to the children that are able to process more advanced information? Can something be done to keep them engaged and nurture their development too?
Edited an unfortunate typo
SmartmanApps@programming.dev
on 21 Jul 2024 18:38
collapse
Oh definitely! Different students have different learning styles - some learn by memorising rules (ROTE), some learn by understanding the rules (Constructivist), some are visual learners, some are better at learning in group activities, etc. - and we have to cater to them ALL, to keep them all engaged (here’s WHY we have this rule, here’s a video about it, here’s a group activity about it, here’s a worksheet to practise it). But I was referring to the TOOLS that we use with class. We can’t use a tool that the advanced students have no trouble with but the less adept students struggle with - we have to use a tool that the whole class can use, and that’s what I meant about catering to the lowest common denominator.
Also some (not all) schools have special classes for gifted and talented (G&T) students. And in fact one class I’ve had in my time is a class which was comprised of half the students had various learning difficulties (such as being dyslexic), though they weren’t told that (these days it’s all about trying to keep them in the mainstream as much as possible. So in this class the dyslexic student had a regular student sitting next to him for immediate help with reading anything, which left me free to only need to help him with actual educational issues).
apolo399@lemmy.world
on 21 Jul 2024 23:57
collapse
Thanks for your reply!
SmartmanApps@programming.dev
on 22 Jul 2024 00:03
collapse
Pascal was my first language. Self-taught. It was pretty good.
SmartmanApps@programming.dev
on 21 Jul 2024 18:26
collapse
My first language was Basic, and Pascal is definitely better than that as a first language (it’s what it was designed for).
ebits21@lemmy.ca
on 21 Jul 2024 10:22
nextcollapse
Surely an unpopular opinion lol.
Python is a great first language.
SmartmanApps@programming.dev
on 21 Jul 2024 18:55
collapse
…and riding a bike is easy. Now go watch some kids who have never ridden a bike before and see how that’s working out for them.
zaknenou@lemmy.dbzer0.com
on 22 Jul 2024 09:32
collapse
as an adult who never rode a bike I can see
JackbyDev@programming.dev
on 22 Jul 2024 03:19
collapse
it looks like pseudo code
Does it though? I imagine most pseudocode looks like the language the writer is most familiar with. My pseudocode definitely doesn’t look like python.
JackbyDev@programming.dev
on 21 Jul 2024 08:38
nextcollapse
I’ve always seriously questioned why python has become the defacto beginner language. Sure, a simple print hello world is short, but I feel like static languages are easier to see what’s going on.
SmartmanApps@programming.dev
on 21 Jul 2024 18:00
collapse
Well, I’m only speaking here for my experience with teaching the U.K. curriculum, but probably the same thing applies elsewhere. I know this much - as a teacher, it’s very frustrating!
0xDREADBEEF@programming.dev
on 24 Jul 2024 10:33
collapse
Honestly, I taught myself JS in like 2009 as my first programming language. My high school taught Java, but I didn’t get OOP. I understand functional programming though, so after JS I taught myself Elixir, then OCaml and Haskell. I really wish I was just taught Clojure or another lisp-like in school though. Python is… okay… I need expressions in my language, though, and Python is not that.
SmartmanApps@programming.dev
on 24 Jul 2024 18:06
collapse
My high school taught Java, but I didn’t get OOP
Yes, the correct sequence of events - one thing at a time, basic programming, then OOP. :-)
Python is not that.
It’s not a lot of things, which makes it poor for a teaching language.
runeko@programming.dev
on 21 Jul 2024 13:15
nextcollapse
For work.
yesbot@infosec.pub
on 21 Jul 2024 14:00
nextcollapse
to prank people using school computers
Cube6392@beehaw.org
on 21 Jul 2024 15:07
nextcollapse
Ah the olden days of using windows accessibility features to replace “.com” with “.corn”
We started there of course. The subtlety has far more to do with needing to get clever than with us being clever. Eventually it got to the point where I had to write a python script to reinstall all our .corn antics back on every school machine because the school took to resetting all accessibility dictionaries every night
Schtefanz@feddit.org
on 21 Jul 2024 14:32
nextcollapse
I was forced to do it during my conscription service to implement an excel merge in VBA because that was the programming installed on the system. Fuck VBA and the integraded VBA Editor in Excel
aluminium@lemmy.world
on 21 Jul 2024 14:53
collapse
Österreich oder? Hab ich damals auch bei einem HTL Praktikum gemacht.
Schtefanz@feddit.org
on 21 Jul 2024 20:30
collapse
Ja genau war während des GWDs befohlen worden VBA zu lernen um die ganzen Excel und Access Anwendungen zu erweitern, wo hast du VBA geschrieben?
jerkface@lemmy.ca
on 21 Jul 2024 15:00
nextcollapse
Same as everyone, to produce reports.
90s_hacker@reddthat.com
on 21 Jul 2024 17:21
nextcollapse
I liked the OCaml website
mindbleach@sh.itjust.works
on 21 Jul 2024 18:00
nextcollapse
I learned Applesoft BASIC to draw a surprise Dickbutt.
If we’re counting machine code, I learned 6502 ASM for faster division on NES, because it was half the CPU time on my first-person shooter. After many iterations pushing it down to mere hundreds of cycles, I slapped my forehead and implemented log tables in like 512 bytes and 45 cycles. It’s negligible now. And supports constant fractional scaling. And has overflow / underflow saturation. Really, 6502 ASM is fantastic to fuck around in, even though the rest of the NES’s hardware suuucks.
zaknenou@lemmy.dbzer0.com
on 22 Jul 2024 10:15
collapse
mindbleach@sh.itjust.works
on 22 Jul 2024 16:19
collapse
I mostly used this page to know what’s possible, and occasionally reinvented the wheel. Conditional jumps are still arcane and fragile in my hands. But I benchmarked all kinds of sequential memory access patterns before realizing the 6502 does not give a dang about reusing the same address.
On Z80, you want to load two registers, use them as a pointer, and tweak the low byte. The 6502 can just take an address and an offset in four cycles. So if you want to access $3000 as an array and read index 4, 5, 6, 7, you don’t LDX 4 and INC X, you LDX 4 and then LDA $3000,X, LDA $3001,X, LDA $3002,X, LDA $3004,X. For e.g. controller reads, you can hardcode bare addresses and it’s twice as fast.
neomachino@lemmy.dbzer0.com
on 21 Jul 2024 22:32
nextcollapse
Not really a dumb reason, but back in the day I was stuck in the WordPress developer loop and tired of it. I was pretty familiar with a handful of languages, but wasn’t doing much more than setting up themes and building out pages with builders.
One day I heard the CTO talking about a tool he would love to have but couldn’t find anything that worked how he needed it to. The CTO was a big buzzword guy and recently shared an article with my manager at the time about how C++ was “the best language”. So naturally I chimed in and told him I could build that tool easy peasy and I would use C++ obviously because it’s the best language.
It was such a simple tool, basically just matching phrases and categories and spitting out a list of options. It took me months to make, but I learned a lot and it kind of worked for the most part and everyone was happy. I eventually got a de-facto department in the company where I would just build internal tools and handle some legacy codebases that they were previously outsourcing.
I later on got my current job because of that leap.
TLDR: I learned C++ because I was bored and lied that I already knew it.
because a system I worked on was just a bunch of Perl scripts in a trench coat pretending to be a program.
Hmm… OpenBSD ports system and package manager?
fruitycoder@sh.itjust.works
on 22 Jul 2024 17:20
collapse
Lol. Oh no I hope not, but a totally different system.
Kacarott@aussie.zone
on 22 Jul 2024 08:25
nextcollapse
I was trying to rank up in Codewars, and there was a 1kyu (hardest and worth the most points) kata only available in OCaml, so I learned it in order to solve.
hector@sh.itjust.works
on 22 Jul 2024 08:42
nextcollapse
I learned Go because I really liked the keyword go
andioop@programming.dev
on 22 Jul 2024 13:06
collapse
This feels like me wanting to learn Hare because I like rabbits, which I bring up because someone left this reply for me and I think it applies to you too:
That is such a sweet reason! Whimsical decisions like this can be some of the best. Life demands a bit of whimsy every now and then.
hector@sh.itjust.works
on 22 Jul 2024 19:25
collapse
Yes I think it’s really beneficial to operate by vibes sometimes lol. Trust your instincts !
NigelFrobisher@aussie.zone
on 22 Jul 2024 12:57
collapse
threaded - newest
I was going to learn !hare@programming.dev just because it is called “Hare” and I like rabbits, but then I saw that I am not on a supported OS.
God. I didn’t knew that Drew was such a language nazi. If you want to write a Go clone, it must be useful for everyone. Even Emacs is available on Windows officially.
What a harebrained comment.
…Sorry, it felt like such a waste not to say it! The puns!
But, language Nazi? Don’t you think that’s a bit much? And it must be useful for everyone? Why? I also think it hinders growth, but it’s their project. It’s well within their right to choose whether they put in the effort to support a platform or not, regardless of the reasoning and how much effort it’d actually take.
They don’t even seem to be against the idea, they just don’t care enough to be the ones to do it:
Even Emacs is available on windows, you say? I think some context is needed, here. See what GNU has to say about the availability of Emacs on proprietary systems:
Emphasis mine.
Taken from the official download and install page.
It is their project, but no company will use it if it’s broken on Windows.
Sure, and that matters because…? What negative effects is this choice having on hare that go against hare’s objectives?
You seem to be treating hare as something it doesn’t want, nor care to be.
Guess you could say they’re probably not friends of million-hares. Ha, ha.
From Torres, one of the core contributors.
Their wants and metrics for success aren’t the same as yours.
That is such a sweet reason! Whimsical decisions like this can be some of the best. Life demands a bit of whimsy every now and then.
Edit: I don’t know if you’re still interested in this, but have you considered WSL? Assuming you’re on Windows, that is. I haven’t looked into it, but I don’t see any obvious reason why it wouldn’t work.
Hey, thanks for the suggestion! I was considering firing up a VM just for Hare, but thanks for bringing this option to my attention.
Because I couldn’t find any dev to help me make the game I wanted to make.
This is actually reasonable. You didn’t know what work is needed to make a game, but your reason to learn a programming language because you couldn’t get help is absolutely not dumb in my opinion.
Actually I did know the amount and kind of work it required, as I have being working on game projects before (I’m sound designer, music composer and game designer).
It’s not really dumb yes, but a bit sad when you think about it.
Ok, it makes it juuuust a little bit dumb, I give you that! :D (just joking). I like that you was determined to do it, even if it meant to go through all of this.
Once Miyamoto said (I have a book with interviews of Game Designers) that a Game Designer should understand programmers, in order to be efficient. Or something with those lines. So don’t think it is sad, make it a positive power you would have missed, if that would not happen. Sorry if I’m a bit too optimistic in my views.
You’re right, but it wasn’t how I took it a the time.
The underlying message I receive was that if you don’t pay enough or you don’t make people dream Steve jobs style, you won’t get anyone to work with you.
I’m lucky, I do have the drive and I can take the time to learn news things and I get to meet some wonderful people along the way. But that’s just me being lucky.
Sorry for venting, but I do think curiosity should be on both side.
I wanted to be a game programmer. 15 years on, I haven’t touched a video game in over a decade, and I find them pretty boring.
No idea, if this was the case for you, but learning how the magic works can definitely make it less magical…
I became a Game Programmer. Job market sucks right now, so I’m cleaning toilets and taking out trash at a grocery store.
But hey, on my days off I sometimes have time to work on games.
I wanted to get into creating video games.
I ended up in software engineering for financial companies. It killed my hobby love of programming but the salary is worth it. Exceptionally lucrative, and I have never struggled for work, with great pay, bonus, benefits, equity
To understand memes
A man of culture
Lemmy UI constantly pissed me off, Photon didn’t quite do what I wanted, so I forked it and learned Svelte. lol
dubvee.org and tesseract
I needed some context, but woah this is super slick lemmy. Awesome project, like the work I’m seeing on the moderation side.
“Gods, that’s stupid. Why is it being done this way? Have they never heard of naming conventions? Is the language really that awfully designed?”
Learns PHP to find out more.
“Yup…”
R. because it’s really easy to work on spreadsheets. i know there’s pandas for python but at that time RStudio made it look really attractive. i will do anything not to work on excel.
When I took biostatistics in college I asked to use python instead of R to do my assignments and they said no
My only real complaint at the time was using <- to define variables but I felt really strongly about it and that I wanted to use fancy snake language
HEY! Is PHP ugly? Yes. Does it use stupid naming conventions? Also yes! But it’s an awesome language when you want to get shit done. There’s no other languages out there where you can just write some code in VIM directly on the server through SSH and immediately see your results without any further setup. No frameworks required, no packages, no imports, no buzzwords and hubub, just pure unadulterated utility.
Nonsense, there are tons of systems like that now. I’ve been playing with Deno & Fresh, it’s great. Trivial to install, a pretty great language, Fresh doesn’t force everything to be client side - you can easily write old school completely server side rendered sites if you want but you get to use TSX which is waaaaay superior to the old text based templating systems we used to use (Handlebars, Jinja, etc.).
It also has built in hot reloading by default so even faster than PHP. Literally hit save and you see the results.
What’s this install nonsense? I just looked up Deno and it’s part of an NPM stack. With PHP you just
Open an Apache server
Write code
???
Profit!
Accurate PHP mindset on so many levels
It’s not. It supports NPM modules for backwards compatibility, but the whole point is that it doesn’t inherit the NPM tooling mess. You can go from a new Linux install to a running Fresh project in 3 commands.
Okay, I’m interested. What stack is it part of? What kind of servers does it use?
There’s two things:
Deno: this is a replacement for Node and NPM and prettier and some other tools. So one aspect is that it’s a more modern Node, using standard web APIs instead of Node specific stuff. And the other aspect is it is more streamlined modern tooling - no node_modules, no complicated build steps, built in Typescript support, etc. In fact you can use a single file as a script, similar to Python… but unlike Python you can use third party dependencies, which makes it fantastic for stuff like CI scripts, etc. where you might have suffered with Bash or Python before.
Fresh: this is just a web framework targeting Deno. Honestly I haven’t used it much but I really like what I’ve seen so far. I always found React to be confusing and overkill for most sites, which should really be rendered server side, but also I really like the way you can compose components with JSX/TSX in a real language with full type checking. Fresh gives you both!
In what sense does python not have third party dependencies?
It has them, but you can’t use them from a single-file script. You have to set up a
pyptoject.toml
, create avenv
and thenpip install .
in it. Quite a lot of faff. It also makes some things like linting in CI way harder than they should be because the linters have to do all that too.With Deno a single
.ts
file can import third party dependencies (you can use any URL) and Deno itself will take care of downloading them and making them available to the script.Some other languages have this feature to certain degrees. E.g. I think F# can do it, and people are working on it for Rust, but Deno is at the forefront.
Oh I see what you mean. Interesting.
As you allude to there are tools in python to help (I tried pex briefly once, for example). It hasn’t really been a pain point for me but I can see why people would spend time on it. I imagine this strategy has its share of tradeoffs and gremlins.
I haven’t actually used pex but it doesn’t look like it solves this - it’s more of a way of distributing full programs. The
.pex
files aren’t editable, which is something you need for this use case.As far as I know there are no downsides. It’s basically win-win.
I found it in the docs docs.deno.com/runtime/manual/basics/modules/#impo…
Not sure if that generates like a lockfile or how it handles peer deps. Intersting nonetheless.
It can optionally use a lock file. Not sure about peer dependencies tbh.
Incorrect. Perl does the same just as well, and it’s a language that actually makes sense while also being uglier.
I’ll admit, I have zero experience with Pearl. I do like the uglier point you made though. 50+ DKP
In my experience Perl is a write-only language. Coming in behind someone else and fixing or writing their code is often slower than just rewriting it
Perl is partially readable, provided that it’s your own code. The one thing perl coders hate the most, is other people’s code.
Source: Am a perl coder
Perl is definitely a WORN language.
Write Once, Read Never
PHP is native in Linux then?
How is that different to something like powershell?
You can’t run a website off powershell. PHP can render HTML to the browser, so it’s perfect for website development. 99% of the web was PHP back in the wild West days.
laughs in coldfusion
PHP is a scourge. I wish less server software were written in it. You’ll stumble upon some opensource project with a cool UI, run into a problem and find out the docker container has apache, postgres, and PHP in it. Debugging PHP is such a pain and setting up a developer environment is such a hassle because they haven’t discovered docker for dev envs yet.
Terrible experience all around.
Anti Commercial-AI license
I wanted to make a scripted version of pinochle because my friends and I play it a bunch on tabletop sim and there was nothing available, so I learned LUA
I learned pinochle as a kid, but can’t remember how to play now.
I learned Lua as a programming student but can’t remember how to use it now.
To get a career in IT.
That’s a pretty solid reason.
Close your eyes to feel it
I inherited a C# code base that had a custom runtime loader for APL modules. Over half of the app was actually written in APL with C# just hosting the API… so yeah, had to learn that. I don’t recommend it but some people seem to really love the language. Those people are often statisticians, not programmers.
I had totally forgotten until this post reminded me: I originally started to learn Python in order to fix a crossword puzzle program.
That’s a good reason. I used my Java skills to crack a shareware (a solitaire game) because I had no money.
Now you can use Java to have lots of money
Maybe not dumb but I’ve definitely been forced to at least partly learn a few terrible languages so I could use some system:
ityp
,nsec
,ef_bin
… The sort of names where you already need to know what they are.Learned Python to try and hack into a porn site.
I learned Python and regular expressions to download hundreds of pictures from 4chan. Good times.
Seems like a good way to get put on a ‘list’.
Ah, the good ol’ regex html parser.
Well, were you able to hack into the porn site? Python seems like an odd choice for hacking a website.
I almost did this for a different reason, people choose python because it has some pretty good web automation/scraping libraries to work with.
This was over 10 years ago, maybe 20. I wanted to pick up a new language and I seemed pretty driven, at the time, to hack a certain site. I think I gave up on it and as usual I enjoyed writing the code more than using the app.
It didn’t use webscraping or anything too sophisticated. I just applied a few dictionaries I found online and ran everything through a series of anonymous proxies. Very brute force.
Ha! I tried the same thing with some random sites like 20 years ago. I managed to get into a few of them and emailed the registered owner that they needed better security.
Needed to write a syntax highlighter for VB.Net but I couldn't find any weirdly written edge cases online, so I had to make some myself.
Python. To write mods for renpy ‘games’.
To have an easier time with another language (which the first language’s valid syntax is a superset of) which it papers over the faults of. And usually it’s pretty thin paper.
C and C++?
Ruby because it was the first popular Japanese language. I wrote a few useful scripts and it was nice. Then it was swallowed by Rails, and killed by Python. No one uses it around me but it was fun.
Learned flash in the 90’s to make terrible games.
Might not be dumb, but I learned programming to create things and learn how things worked. Started with entering in hundreds of lines of BASIC printed in magazines, including debugging font typos.
Then learned MUF, or Multi-User Forth, a stack-based text language for creating text based dungeons, and managed to stop some malicious users spying and people’s privacy in the server.
Every so often, I pick up a new language to test it to see if it does cool stuff or help me further learn more about how things function.
Somewhere before 2010, when I was still on Windows on my laptop and using AutoHotkey, I learned a dialect of Basic. To write an application starter on my USB stick, when going to internet cafes. The starters job was just to run my AutoHotkey script with AutoHotkey interpreter. I never used the Basic language again. I actually forgot which dialect, maybe FreeBasic.
I wanted to see what the COBOL job market looked like. So I learned the superficial basics of COBOL in a day or two, just so I wouldn’t be a complete fraud when I put it into my linkedin profile as a skill to see what happens.
How did that turn out for you?
Didn’t get a single reqeust, so this had less impact than expected. Thought there was more old rusty companies looking for a non-retired engineer.
Yeah I think that’s mostly a myth. When I looked up salaries they were definitely good (for programming; amazing for the average person), but not “I would write COBOL for that” good.
There aren’t really that many old COBOL systems around. I think it’s mostly just over-reported because you can write an article about how some government department still uses COBOL but you can’t write about one that switched to Java.
Profit.
It’s hyperbole, but I learned my first language because I wanted to be a god.
I saw these magic windows that popped up, that had buttons, and I was jealous of these godly creators holding the power to make them do as they wanted. So, I learned it myself. I peeked at another program I was using, it was using python and PyQt so that’s what I set out with to become my own god of the desktop.
My first program was a GUI wrapper around the YouTube-dl CLI, and I still use it frequently.
Hey, that’s similar to me! Except I’d call it a wizard rather than a god. I wanted to learn the cryptic combinations of words that willed things into existence in the digital world. 23 years later I’m a senior professional, doing the same thing, and still learning too.
I was playing this really simple mobile phone game, where you basically go on these mining trips, then you tap the screen as quickly as possible. So, I thought to myself, I wonder if there’s a way to simulate screen taps, to tap at superhuman speeds.
I found an app for that, this app had its own scripting language. Admittedly, there weren’t many concepts to learn in this language, but wait, there’s more.
Then I thought, maybe I can also automate the menus, between the mining trips.
But this language didn’t have support for multiple files, nor functions, you couldn’t even use labels in your goto statements, meaning my code started to get quite complicated.
So, I actually sort of implemented support for goto labels / shitty functions within my program.
Basically, at the start of the file, I had an if-else block, which read the value of a variable and based on that, it would select between different goto statements.
So, if I wanted to “call a function”, I would set the variable to the function/label name and then
goto 0
.If I remember correctly, I did still need to manually update the line numbers in that lookup table at the start, but at least, I didn’t have to do it everywhere in the code anymore.
And yes, I did manage to completely automate grinding that game, using this shitty scripting language.
It was an offline game, and not a good one, I didn’t actually care about making progress in it. But scripting it was significantly more fun than playing it myself.
There’s a game called something like “oh no the farmer is gone” which is about programming a little robot to harvest the fields and the programming is built directly into the game
Objects weren’t properly saving in a game, so the developer showed me what code I could copy paste to enable objects to save. Much like Thanos, “fine, I’ll do it myself”.
Because it was the new hotness
Which js framework was it?
We should be able to figure this out. Which year, month, date and hour of the day was it?
Because I wanted to listen to music while doing the dishes.
The Jellyfin Roku client didn’t support audio playback, so I wrote it myself… while learning Roku’s proprietary language 🙄
It occurs to me I’ve literally never tried to play my music library through Roku. I usually just cast to a speaker with my phone. Is it part of the main branch?
Yep. That code was merged and released roughly 2 years ago.
Well I thank you for your contribution regardless. Roku is all I’ve got, so it helps to have people like you annoyed enough, and knowledgable enough to contribute.
🤘 Enjoy
I started learning Lua for a WoW add-on. Not even making my own add-on, just tweaking someone else’s.
I learned Minecraft’s data pack language for the same reason. 20w14infinite needed a Portal gun, I found a working one, but tweaked it to my liking
Had to learn Javascript for web development class.
In all seriousness, I found out about Nim from the debug log of a discord bot and decided to give it a shot. It’s now my favorite programming language.
I learned a bit of FORTH because an old Minecraft mod (Redpower 2) had a computer that could run it.
I wonder how many people learned Lua for this reason (CC and friends).
I did! I picked it up specifically for CC, then I found a window manager that was also configured in Lua.
I was a teacher’s assistant in beginner’s programming at university for a bit. I expected them to learn C, which I knew enough of, but I got assigned to a group that learned Python instead. I had never used Python at the time. I ended up having to speed learn it while trying to teach it, to not be completely useless.
See my comment
That’s silly. Luckily, I don’t think this was the same situation. This was at a university and they had classes with other languages. The beginner classes were split into two variants, where some students (mostly CS students) learned C, and other students (economy, etc.) learned Python. I suppose they figured it was more useful to them or something.
Agreed.
As I said elsewhere, I had a much more sensible approach when I went to Uni - we learnt Pascal in first year, and then did OOP in second year, which follows the tradition of only teaching one concept at a time.
Sounds like you had the wrong indent after they shifted you around.
Arduino and Python to create a sexy machine that syncs up to videos. Oh I also made the sex machine part, like machining metal parts and soldering electronics.
please tell me you created a
dick
object for the project which is exactly the same as adict
object.Income
We found a RCE on a server during pentest. In KOBOL.
Learning how to make a reverse shell in KOBOL was pretty unique experience. Thankfully, we found another path to DA ajd didn’t have to continue, but maan, learning KOBOL, especially of your use-case is niche, is borderline esoteric.
I learned a bit of KOBOL after hearing it was the weirdest, hardest, and most unused programming language back in highschool. But only really enough to do a hello world and other very simplistic programs. More because finding resources at that time was difficult.
I tried to learn some back around 2019. I don’t remember why, but there was something going on relating to it at the time? Maybe it was as simple as me reading an article about Cobol devs retiring.
I, as a teacher, have had to learn several languages, but that’s not the dumb reason bit. The dumb reason bit was WHY I had to teach Python, which once I learnt it (so I cold teach it) I could see right away was NOT a suitable language for teaching to Year 7 (who up to now have only used Scratch). I was teaching the U.K. curriculum, and I found out that teaching C# was also allowed - still not ideal, but better than Python for learners -but pretty much all schools were teaching Python. When I dug into it I found I was far from alone in not wanting to use Python… and I also found out the reason schools were teaching Python. It was because from an ADMINISTRATIVE point of view it was much easier for the schools to have us teaching Python. In other words, the office-workers who didn’t have to teach it, only had to admin it, were forcing everyone to teach Python because they wanted the lower overhead that came with installing/maintaining that vs. C#. ARGH! All the teachers who wanted to teach C# were running into exactly the same road-block.
I’m curious why you think Python is unsuitable. Both of my kids picked up Python pretty easily.
I think there was more, but that’s what I remember off the top of my head. If it was up to me then I would’ve used Pascal - that’s what it’s designed for! But at least C# has strongly-typed variables, and doesn’t care about your indentation (and unfortunately there was no non-OOP language choice available - I’m not sure how this got in the curriculum when every teacher knows you only teach one concept at a time). As I said, many other teachers felt the same way, but couldn’t get it past their school admin’s.
Notably, when I did my C.S. degree, they knew to only teach one concept at a time. We learnt Pascal in first year, then did OOP in second year.
Why do you even have to mention OOP? C# is object oriented too. Would you start explaining OOP too when teaching C#?
Python is comparatively easier as it’s nearly literally pseudo-code. There’s no need to even write a main function or functions at all. It uses less characters too e.g no need for semi-colon, brackets in for loops and if statements
As for indentation being exact, IMO that’s on you. Beginners should be given a proper development environment to work in that helps them as much as possible. Modern editors and IDEs point out syntax errors and indentation errors are incredibly basic. If they are working in an environment that doesn’t even point that out to them, they have been setup incorrectly.
Anti Commercial-AI license
Because I was saying why it’s a bad choice to teach to Year 7. I already said if it was up to me I’d teach them Pascal.
Yes, I know, but in this case it’s the lesser of 2 evils, for the other reasons I gave.
And as I just said to someone else, students even struggle with pseudo code.
And I already said that’s one of the drawbacks - indenting has to be EXACT or your program doesn’t work anymore.
It’s not on me - it’s in the language itself to begin with. I have no control over it.
Now see if you can get the school admin’s to install those ones. As I said, that’s the root issue to begin with - the school admin’s.
Now see if you can get the school admin’s to fix it. Welcome to the struggle the teachers face in teaching what WE want to teach them.
It seems you did the best you could with what you had to work with. It’s a shame the other users don’t understand that you didn’t get to choose the tools your students could use and instead went with what they, in their freedom to choose and install what they want, would have used to teach. I can imagine you only had notepad and Idle to use.
Thanks. From memory we were using repl.it, or something very similar. This made it easy for me to look at their code when they had problems (and even then, as I said to someone else, it was quite a while before I realised one of them simply had the wrong indentation on one line - I kept looking at the code and thinking I couldn’t see anything wrong with it, then eventually I realised there was a wrong indentation. If it took me that long to realise, then of course that’s something students are going to struggle with).
Python does have OOP but you are not at all forced to use it. You can write code in a functional or even procedural style.
I do hate that python doesent have proper support for typing but I think weakly typed variables will actually help beginners as it is less to think about to start off with.
I think there are pros and cons here. In other languages it is considered good style to use indentation anyway.
I’m sure it is difficult to teach a large class like that though. It was hard enough for me to learn with a much more favourable teacher to student ratio than you probably have. Sorry but honestly I do sympathise with admin as well.
Not as an individual, but I’m talking about a situation precisely where the individual choices of teachers are ignored, in some cases by school admins, in some cases by faculty choices. Fortunately I also ran a computing club, in which I was autonomous with how I ran it, and I taught my computing club students C#/MAUI… but even then still saw some of the issues you run into with teaching students. e.g. I told them to install Visual Studio ready for next week, showed them where it was, what workloads to install, and then the next week one of the students had installed Blend for Visual Studio, not Visual Studio. “Look, it has Visual Studio in the name!”. (sigh)
No, that’s exactly the problem to start with. Another rule of teaching (see below for the full list I’m quoting these from) is “never let the first impression be a wrong one”. If you let students think they can use variables for anything, then you run into problems when they can’t. This is why teaching them with strong types first is better - they learn you need to be careful with how to use them, THEN maybe you can let them have some more freedom like Python allows.
Yes, but in those languages it’s optional. In Python it’s mandatory, and if someone’s code isn’t working it’s far easier to spot a missing bracket than a missing space.
<img alt="" src="https://programming.dev/pictrs/image/1f1b7606-55c9-4795-a84b-90e29ab2f87e.jpeg">
It’s odd to me that you’re disagreeing with their actual experience teaching.
Thanks. It’s a very 21st Century phenomenon that I’ve unfortunately run into many times
<img alt="" src="https://programming.dev/pictrs/image/3ff991a9-a3ec-45e1-9788-9909fc5d1b57.jpeg">
Lots of us have the experience of being the kid in that situation though. I learnt python in secondary school.
They’ve been through the other side of this experience multiple times though.
Which kid? The gifted one, the one who didn’t understand loops and used 20 variables for 20 iterations, the one who didn’t understand how to write pseudo code, the one who was dyslexic,…?
Which Year? I didn’t say it wasn’t appropriate for high school, I said it wasn’t appropriate for Year 7 as a first programming language.
Also, who do you mean by “us”? Programmers? Not all the kids in class want to be programmers, and this isn’t a programming class - it’s Computer Science. We cover topics like hardware, the Internet, Cybersecurity, the history of computers, data analytics, etc. Not only do not all of them want to be programmers, not even all of them want to be in I.T. - they’re just, you know, interested in computers (or in some cases they’re in the course because their parents think they should be in it - I’ve had a couple of those students). We only spend 6 weeks on programming (we spend 6 weeks on each topic), or sometimes we might do it twice and spend 12 weeks on it, and that’s it for the year! You can’t teach Year 7 kids algorithms, pseudo code, basic programming concepts (variables, branches, and loops) and OOP as well in one year. Especially when not even all of them are interested in programming. It’s just one topic we cover. OOP is something that shouldn’t be covered until at least Year 8, preferably Year 9 (by which stage students have decided if they want to continue on this path or not, and the ones we still have left we start getting more hard-core… which is where the “us” I presume you’re referring to come in).
You can use types in Python and your tools will generate warnings
def something(a: int) -> int: return “potato”
will turn yellow in an IDE more advanced that notepad.
Most editors will also show a red line where the indentation is wrong.
Same thing still applies - you need to get it past the school admin gatekeeper.
If you’re writing any language in like notepad, you’re going to have a bad time. I accept your point that school administration may be making questionable choices about what software is installed, but that’s not a problem unique to python.
No, but it’s a bigger problem for C# than is is for Python (though this is changing now), so all the U.K.-based schools were teaching Python, rather than the more-appropriate C#. That was my original point - that’s the dumb reason I had to learn Python, school admin’s wanted the lower overhead of the worse language.
I learnt to program in python (in year 12). It was pretty good:
Yes, it’s fine for Year 12 - you’ve already learnt all that stuff by then - it’s NOT fine for Year 7 as a first proper programming language, when they haven’t learnt ANY of that stuff yet.
I leant from scratch as my first programming language in year 12.
They tried to teach OOP in year 13, but I didn’t really get it until university.
This was years ago at this point, I think they introduced the programming GCSE the year after I did my A-Levels.
A scripting language like python is the ideal language to start with because you can JUST learn the programming bit without worrying about OOP, project structures, compiling etc.
I was teaching the IGCSE, to students all over the globe.
But NONE of the resources which have been provided to schools do it that way - they ALL use OOP. If that’s what your faculty has chosen to use, then that’s what you have to use. It comes back to what I’ve been saying all along - the schools are dictating to the teachers what they are to teach, and it’s NOT based on what’s best for the students educationally, but what has the least admin overhead for them. That’s the stupid reason that I had to learn Python - admin concerns!
Oh, ok, that’s annoying then. One of those cases where it feels like the person putting the course together has never actually interacted with children?
Yes, that’s exactly what I’m saying. The decision was made for us by school admins, NOT CS teachers. That’s why it was the stupid reason I had to learn Python.
Oh, I should clarify that. Teaching Python was decided for us by admins. The course material MAY have been designed by a teacher, but then also it may have been designed for Year 9 say. It’s inappropriate to be teaching it to Year 7 as a first proper programming language, but that’s what we had to do (otherwise then we would also have to make all our own resources to do it, and don’t forget at this point that I didn’t know how to program in Python myself yet! So yes, I had to use the already made resources, which had OOP in it).
P.S. the students aren’t going to have any tests where it matters until Year 10, and the curriculum even says that at least 2 languages must be taught (in my case we chose HTML as the second language, because…), and so even though many teachers would like to teach their students C#, the schools simply aren’t LETTING them do that. They don’t want the admin overhead that comes with teaching C#, so it’s Python and… nope, it’s just Python (and so then you have teachers opting for a second language like HTML, cos they can’t get their school/faculty to buy-in on teaching C#, simply because they don’t want the admin that comes with it. The fact that it’s a better language to learn isn’t even considered).
Is the fact that C# produced executables also a problem? With python you can ‘protect’ non lab computers at the school by just not installing the python runtime on them. Teach them c# and I guarantee they will be making executables to cause trouble.
Generally agree with you that teachers should be able to choose at least one of the languages to teach. basic web dev stuff is probably pretty useful to them though if it includes JavaScript?
Trust me, the conversation never even gets that far.
We weren’t! We were using repl.it (or something very similar). I don’t know what the story was at other schools, other than many other teachers also wanted C# but had to do Python (it was when I came across this that I finally accepted defeat in trying to get another language in instead of Python. I wanted to start with Pascal and then do C#. In the end I had to do HTML and Python. i.e. the status quo).
We’re supposed to be able to choose both languages, but school admins are taking away one of our choices.
I wouldn’t do that at the same time as HTML - maybe later, separately. As I’ve said, as teachers we only teach one concept at a time.
P.S.
No, you’re overestimating the students ability. I taught C# in coding club (they were mostly around Year 8), and it was a struggle just getting them to understand basic programming concepts (imagine having to explain MVVM to them - they’re not good at understanding abstraction) - they wouldn’t have had a clue how to turn it into a malicious exe.
I’m really surprised to hear that teaching C# to 7th graders is easer than teaching them python. Python was invented to teach. It looks like pseudo code. I have almost zero experience in teaching so I trust your experience. But can you elaborate a little? What makes teaching C# easier?
I just replied to someone else with the same question. Less can go wrong (but in either case a non-OOP language, like Pascal, is a much better starting point. You should only ever teach students one concept at a time).
As it is, when we had to teach them HTML, the resources we were given were using PHP at the same time, so I scrapped that and just taught them HTML myself. We never teach more than one concept at a time, so I don’t know how these other things found their way into the curriculum/resources.
P.S. as a teacher, I can tell you I have seen students who even struggle to write pseudo code. It’s like trying to teach them Greek (not all students, but some, and we need to cater to the lowest common denominator).
Oh! I just remembered this video. If you wanna know how students can struggle with pseudo code, watch the video. I use this video when I teach algorithms (students are even worse at that than pseudo code).
I hate having to cater to the lowest common denominator, I had to struggle with un-engaging classes all throughout elementary and middle school. I’ve seriously thought about becoming a teacher so I’d like to ask, in your experience, what happens to the children that are able to process more advanced information? Can something be done to keep them engaged and nurture their development too?
Edited an unfortunate typo
Oh definitely! Different students have different learning styles - some learn by memorising rules (ROTE), some learn by understanding the rules (Constructivist), some are visual learners, some are better at learning in group activities, etc. - and we have to cater to them ALL, to keep them all engaged (here’s WHY we have this rule, here’s a video about it, here’s a group activity about it, here’s a worksheet to practise it). But I was referring to the TOOLS that we use with class. We can’t use a tool that the advanced students have no trouble with but the less adept students struggle with - we have to use a tool that the whole class can use, and that’s what I meant about catering to the lowest common denominator.
Also some (not all) schools have special classes for gifted and talented (G&T) students. And in fact one class I’ve had in my time is a class which was comprised of half the students had various learning difficulties (such as being dyslexic), though they weren’t told that (these days it’s all about trying to keep them in the mainstream as much as possible. So in this class the dyslexic student had a regular student sitting next to him for immediate help with reading anything, which left me free to only need to help him with actual educational issues).
Thanks for your reply!
No problem. Feel free to ask me questions.
Pascal was my first language. Self-taught. It was pretty good.
My first language was Basic, and Pascal is definitely better than that as a first language (it’s what it was designed for).
Surely an unpopular opinion lol.
Python is a great first language.
…and riding a bike is easy. Now go watch some kids who have never ridden a bike before and see how that’s working out for them.
as an adult who never rode a bike I can see
Does it though? I imagine most pseudocode looks like the language the writer is most familiar with. My pseudocode definitely doesn’t look like python.
I’ve always seriously questioned why python has become the defacto beginner language. Sure, a simple print hello world is short, but I feel like static languages are easier to see what’s going on.
Well, I’m only speaking here for my experience with teaching the U.K. curriculum, but probably the same thing applies elsewhere. I know this much - as a teacher, it’s very frustrating!
Honestly, I taught myself JS in like 2009 as my first programming language. My high school taught Java, but I didn’t get OOP. I understand functional programming though, so after JS I taught myself Elixir, then OCaml and Haskell. I really wish I was just taught Clojure or another lisp-like in school though. Python is… okay… I need expressions in my language, though, and Python is not that.
Yes, the correct sequence of events - one thing at a time, basic programming, then OOP. :-)
It’s not a lot of things, which makes it poor for a teaching language.
For work.
to prank people using school computers
Ah the olden days of using windows accessibility features to replace “.com” with “.corn”
You were more subtle than my friends. In the computer lab, we would just change “the” to “fuck”
We started there of course. The subtlety has far more to do with needing to get clever than with us being clever. Eventually it got to the point where I had to write a python script to reinstall all our .corn antics back on every school machine because the school took to resetting all accessibility dictionaries every night
this isn’t dumb at all
I was forced to do it during my conscription service to implement an excel merge in VBA because that was the programming installed on the system. Fuck VBA and the integraded VBA Editor in Excel
Österreich oder? Hab ich damals auch bei einem HTL Praktikum gemacht.
Ja genau war während des GWDs befohlen worden VBA zu lernen um die ganzen Excel und Access Anwendungen zu erweitern, wo hast du VBA geschrieben?
Same as everyone, to produce reports.
I liked the OCaml website
I learned Applesoft BASIC to draw a surprise Dickbutt.
If we’re counting machine code, I learned 6502 ASM for faster division on NES, because it was half the CPU time on my first-person shooter. After many iterations pushing it down to mere hundreds of cycles, I slapped my forehead and implemented log tables in like 512 bytes and 45 cycles. It’s negligible now. And supports constant fractional scaling. And has overflow / underflow saturation. Really, 6502 ASM is fantastic to fuck around in, even though the rest of the NES’s hardware suuucks.
from googling I see wikipedia has a book for it: en.wikibooks.org/wiki/6502_Assembly
I mostly used this page to know what’s possible, and occasionally reinvented the wheel. Conditional jumps are still arcane and fragile in my hands. But I benchmarked all kinds of sequential memory access patterns before realizing the 6502 does not give a dang about reusing the same address.
On Z80, you want to load two registers, use them as a pointer, and tweak the low byte. The 6502 can just take an address and an offset in four cycles. So if you want to access $3000 as an array and read index 4, 5, 6, 7, you don’t LDX 4 and INC X, you LDX 4 and then LDA $3000,X, LDA $3001,X, LDA $3002,X, LDA $3004,X. For e.g. controller reads, you can hardcode bare addresses and it’s twice as fast.
Not really a dumb reason, but back in the day I was stuck in the WordPress developer loop and tired of it. I was pretty familiar with a handful of languages, but wasn’t doing much more than setting up themes and building out pages with builders.
One day I heard the CTO talking about a tool he would love to have but couldn’t find anything that worked how he needed it to. The CTO was a big buzzword guy and recently shared an article with my manager at the time about how C++ was “the best language”. So naturally I chimed in and told him I could build that tool easy peasy and I would use C++ obviously because it’s the best language.
It was such a simple tool, basically just matching phrases and categories and spitting out a list of options. It took me months to make, but I learned a lot and it kind of worked for the most part and everyone was happy. I eventually got a de-facto department in the company where I would just build internal tools and handle some legacy codebases that they were previously outsourcing.
I later on got my current job because of that leap.
TLDR: I learned C++ because I was bored and lied that I already knew it.
I learned bash instead of python because my 8 year old brain saw all the parentheses and thought “ew no”…
Experienced me sees a language where parentheses are optional and I think “ew no”
I learned lolcode in college because we had to write a sorting algorithm in assembly and “any other programming language.”
Perl because a system I worked on was just a bunch of Perl scripts in a trench coat pretending to be a program.
I learned it because the ancient beast kept breaking because it just a bunch of Perl scripts in a trench coat cobbled together over generations.
Hmm… OpenBSD ports system and package manager?
Lol. Oh no I hope not, but a totally different system.
I was trying to rank up in Codewars, and there was a 1kyu (hardest and worth the most points) kata only available in OCaml, so I learned it in order to solve.
I learned Go because I really liked the keyword go
This feels like me wanting to learn Hare because I like rabbits, which I bring up because someone left this reply for me and I think it applies to you too:
Yes I think it’s really beneficial to operate by vibes sometimes lol. Trust your instincts !
Wanting to get into the videogames industry.