Programming thread

I've been thinking about this for the past few days and I'm realizing I'm not taking that advice as well as I should. I've got some relative downtime at work, so I'm going to give this another dedicated go. I think I'll probably stick with gvim for now, but if there's another editor with REALLY GOOD vim bindings (the only decent one I've seen thus far is vsvim), I'm open to suggestions.
Spacemacs has excellent Vim bindings. It's what I've been using for years, it Just Works and has a great feature set.
inb4 bloat - I don't really care. I use it because it's good, minimalism is a meme.
 
  • Informative
Reactions: Bongocat
UX people are fucking weirdos like that. "Change for the sake of change" is a useless idea that seems to have just metastasized everywhere over the last decade or so.
You also get stupid fads that everyone jumps on for the sake of fashion which have nothing to do with usability. I absolutely hate current UX trends towards flat design, and much prefer the look of Skeuomorph. Doing iPhone programming with manual view code, especially if you're not using Interface Builder (i.e. ~iOS 7 when the UI tools sucked), means redo-ing a huge chunk of your View code because Apple has a new faggot with a vision.

But did everyone clap afterwards?
It was a 2 person team at a start up incubator and making funny inside joke shirts were part of the culture. UX was out of house consultant.
But yes, I gave a speech about the importance of community and accepting everyone, and how high school sucks and parents/teachers don't understand because their hearts have gone cold, then everyone slow clapped.
It was pretty much like this, only I had more michael jackson imitation Corey Feldman


How every they had a few demands. That is all normal so i took notes, there demands where Structured text is not allowed, but instead they want it in ladder. This is a massive amount of code they want in FUCKING LADDER!!! We are talking code to get several different CNC machines and different systems to work as one. Thousands of lines of code, function blocks and a system as a robust as it can be, but hey lets make fucking spaghetti code because a 89 year old electrician only knows ladder.
PLC programming, ugh that takes me back. What system(s) are you targeting? I mostly worked on Siemens, then switched to a lot DCS stuff when a good chunk of industry moved over. For larger systems, Ladder logic becomes a disaster. I know about all the claims of "self documenting and intuitive", but that quickly goes out the window when it turns into a spider web of dependent states and consequences, and that's not even getting into the shit methods of data handling.

Also, If they want future code flexibility, why are they choosing ladder, which makes code reuse difficult?
 
Last edited:
It doesn't look like this allows me to directly insert code snippets like the Visual Studio Code extension does.

Emacs is not suitable for modern development workflows.
I think you might be taking the piss :)
While you cannot paginate questions with it, you can certainly use EWW as your web browser, then just open the search result in another buffer and copy the answer without leaving the editor.
 
Programming noob here. For someone who one day wants to make games, what language(s) should I learn? I started with Python because a I heard it was easy to learn but am curious on where to go once I have had more experience with coding.
 
Programming noob here. For someone who one day wants to make games, what language(s) should I learn? I started with Python because a I heard it was easy to learn but am curious on where to go once I have had more experience with coding.
Some people claim Python may or may not lead to irrevocable brain damage. I see their point but I'm unconvinced.
AFAICT, most game development is done either in C++ or C#. There's some in Java, too. I'll disregard all special snowflake opinions on the matter, including my own, and suggest you do the following:
Get the hang of Python. Develop one or two personal projects with it.
Learn C. There isn't a lot to learn, it won't take much, and will prepare you for the next phase.
Learn C++. Good luck.
 
I'll disregard all special snowflake opinions on the matter, including my own
Feel free to message me if you want to share any of those opinions. I'm very new to the programming world and want to learn as much as I can. Thanks for the advice.
 
  • Like
Reactions: melty
Feel free to message me if you want to share any of those opinions. I'm very new to the programming world and want to learn as much as I can. Thanks for the advice.
Generally, programming is a layered craft.
You can remain at the level of a code monkey and bash out reams of working code, make lots of money and live your life happy.
Alternatively, you can approach it from a more craftsmanlike perspective, become professional, care about the quality of the code you produce.
Further, you can approach programming academically. In that approach, a computer is mostly incidental to programming. It's just what we use today to turn words on paper into effects in the real world and not very interesting. In that approach, learning how to think and design is more important than anything else.
I lean the most towards the 3rd option. If you want to program games it's awesome, but it has nothing to do with learning to program or learning to think algorithmically and clearly.
A good learning path in my opinion starts with Scheme and SICP, after which you should probably approach OCaml to complement the dynamic approach.
After that, pick a slightly more practical language and try to make something with it. There are plenty of game making libraries and projects out there, so at that point you could let that be your guide.
Thing is, this is my opinion on how things should be done. It doesn't mean it would be a good fit for you. You may not like taking the more academic route and find it depressing, feel like it's drawing you away from what you really want to do.
Programming can be frustrating and insanity inducing at the best of days, so don't let someone's opinion make it even harder.
You can learn Python, pick up Godot and have a ton of fun, don't let me spoil it for you
 
Generally, programming is a layered craft.
Woah, you sound like you know your stuff. I may just give your idea a try. I didn't even know languages like Scheme even existed. Maybe starting with a minimalist language like that would help me get a better start. Games is the end goal but I am genuinely having fun programming. When I figured out how to write if statements in python I was very thrilled with myself.
 
  • Feels
Reactions: Shoggoth
Programming noob here. For someone who one day wants to make games, what language(s) should I learn? I started with Python because a I heard it was easy to learn but am curious on where to go once I have had more experience with coding.
Depends on what you want to write.
People recommend Love2D (lua) for 2d game development, and lua is a really simple language.
If you want to get into hardcore do-it-yourself autism, you'll probably want C++, though it would take a very long time to actually be able to program at that level. Not to mention for something like that it's not just the language, its that plus OpenGL / Vulkan, plus audio libraries for individual operating systems, plus learning about file formats, operating with controllers or the keyboard, etc.
 
Programming noob here. For someone who one day wants to make games, what language(s) should I learn? I started with Python because a I heard it was easy to learn but am curious on where to go once I have had more experience with coding.
It depends what kind of games you want to make, and I don't mean the genre. Do you want to make an entire game from scratch? That would be C/C++. Do you want to use an engine and learning a basic "scripting language". That would be Unity and C#. Do you want to not even program at all? Gamemaker studio. Making a game is more about passion and work ethic than simply programming, programming is probably the easiest part of making a game (a programmer would say that though, wouldn't they?). I thought I wanted to make games until I tried to make a game and I found out I wouldn't be doing much programming, which is what I actually wanted to do. Making a game requires a lot of different skillsets than just programming. That doesn't mean it can't be done, there are asset packs, free sounds, free tutorials, etc, etc. I think the most important thing is to be creative and love doing the work.

If you're taking the autist route (because you're on Kiwi Farms), you should check out this series. He goes through the basics of C all the way to an actual game.
 
If you're taking the autist route (because you're on Kiwi Farms), you should check out this series. He goes through the basics of C all the way to an actual game.
That looks really cool. I've mostly been relying on books to learn code but this might be perfect for me. But boy oh boy that is a lot of episodes. :o
 
That looks really cool. I've mostly been relying on books to learn code but this might be perfect for me. But boy oh boy that is a lot of episodes. :o
You don't neccesarily have to do every episode, but he goes over the basics of C and tells you how a computer works which is useful information. Keep in mind he's writing an entire game from scratch, you have studios of 100+ people that make a game every 5 years. Stardew Valley was made by one person in 5 years. People make games because they enjoy the process of making games, not because it's an easy craft. I wouldn't worry about counting how long x and y will take you or how long the series is, you do it because you enjoy it and the rest will follow.
 
That looks really cool. I've mostly been relying on books to learn code but this might be perfect for me. But boy oh boy that is a lot of episodes. :o
I also want to say that if you're learning python and you like it you should stick with it. Other languages (even esoteric shit like Coq or Haskell) is going to be much easier to learn once you know another programming language very thoroughly.

I would still recommend looking at programming languages that are very different from each other (someone recommended Scheme and another recommended C). Different languages have different ways of writing code and different ways of thinking about how to solve problems, and those are applicable even when you're not using the language in question.

Also the #1 way of learning any language is projects, especially projects that you personally find satisfying. I dunno how knowledgeable you are but if you want to write games then you could do something visual (like recreating a bouncing DVD logo screen saver, or modeling a cannon shooting a projectile in 2D) and then just tinker with it, add new shit, etc. For almost all programming languages I've learned I've never read more than half of any book I have on them: I read enough to get started then just flip through it when I need to figure out how to do X.

Finally learn how to use git. It will save your life. You don't need to use github, just learn how to use the command line git program.
 
Also the #1 way of learning any language is projects, especially projects that you personally find satisfying. I dunno how knowledgeable you are but if you want to write games then you could do something visual (like recreating a bouncing DVD logo screen saver, or modeling a cannon shooting a projectile in 2D) and then just tinker with it, add new shit, etc. For almost all programming languages I've learned I've never read more than half of any book I have on them: I read enough to get started then just flip through it when I need to figure out how to do X.
The book I am reading for Python actually has some example projects at the end. Would you suggest I do them or jump right into making my own?
 
Learning a language is different than learning how to program. Grab any user-friendly language (any of the top 10, I always recommend javascript since everyone has a browser and text editor, but python is great too), and start solving a bunch of simple problems like "palindrome detector", then move onto using composable functions to solve a larger problem, then onto using classes to solve bigger problems, then onto modules/libraries. After this try breaking your programs, give '1234321' into your palidrome app. What does it do? Does the answer make sense?

Key things are to understand how to decompose a problem down into simple steps, understanding exceptions, program flow/control, and how solving big problems are essentially stacking lego pieces of smaller solved problems. Good luck!
 
The book I am reading for Python actually has some example projects at the end. Would you suggest I do them or jump right into making my own?
I would ask the following questions:
  1. Does it sound interesting? Writing a SAT-solver might be interesting for some and terminally boring for others.
  2. How difficult is it? You don't want something trivial you could do in an hour, but you also don't want to do something extreme where you would burn out before finishing it.
Another good source for projects is asking yourself "what programs do I want"?
 
Back