this post was submitted on 07 Mar 2024
487 points (93.9% liked)

Programmer Humor

19623 readers
28 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
top 50 comments
sorted by: hot top controversial new old
[–] Deceptichum 64 points 8 months ago* (last edited 8 months ago) (4 children)

I’m clicking my mouse as fast as I can but nothing is happening.

How many clicks until my awesome app is finished?

[–] [email protected] 23 points 8 months ago (5 children)

There lies your problem, ditch mouse use vim(neovim if want to impress the ladies).

[–] Deceptichum 21 points 8 months ago* (last edited 8 months ago) (2 children)

vims that thing were you type emoticons everywhere right? :q :w :e

It's 2024 we only use emojis now 😎

[–] [email protected] 11 points 8 months ago
load more comments (3 replies)
[–] [email protected] 8 points 8 months ago

The mistake is clicking it, and not speaking to it. Try "hello computer".

load more comments (1 replies)
[–] xmunk 53 points 8 months ago (3 children)

As a developer I object to your assumption that I need a mouse to do my job. The only thing I need a mouse for is outlook and I'd definitely be more productive without it.

[–] [email protected] 22 points 8 months ago (4 children)

This is my imposter syndrome.

I'm a senior engineer now and I'm a big mouse user. It's more intuitive for me. My productivity is certainly not bottlenecking on how fast my hands move on the keyboard. .

My productivity is bottlenecked by the number of meetings I have to attend, random slack messages that need to be responded to, and distractions IRL.

[–] xmunk 19 points 8 months ago (6 children)

I'm not going to shame anyone about using a mouse unless you also always right click to copy/paste.

load more comments (6 replies)
[–] [email protected] 10 points 8 months ago (1 children)

Nah fuck the haters, the keyboard-only workflow may be technically more productive, just like a Dvorak is better than a QWERTY, but what matters is your output and your quality.

[–] [email protected] 3 points 8 months ago* (last edited 8 months ago)

People will spend hours learning things that save them seconds.

[–] [email protected] 6 points 8 months ago

One of the best programmers I worked with was a hunt and peck typist.

His code was meticulous. I frequently learned things reading his PRs.

Pair programming with him otoh....

[–] Ookami38 3 points 8 months ago (1 children)

I choose to eschew my mouse when I can because it's easier. I don't have to move my arms around as much, and I can work quicker. It's more comfortable. All of this is a preference thing, why should anyone do something my way if it's not how they prefer?

[–] [email protected] 4 points 8 months ago

Great perspective. If we are codeving or screen sharing, I'm fast and fluid. I just move differently.

Skiing vs snowboarding

[–] [email protected] 2 points 8 months ago

http://www.mutt.org/

Disclaimer: I have never used this but I did a Google for you. It looks reasonably maintained.

load more comments (1 replies)
[–] [email protected] 38 points 8 months ago (3 children)

"If you wish to be a writer, write."

Epictetus delivered this burn over 1900 years ago.

[–] zarkanian 6 points 8 months ago

Is that actually a burn? It depends on the context.

It's the same thing whenever I hear somebody say "I wish I could draw like that." You probably can, but it would take hundreds of hours of practice. Of course, people wish that there was some shortcut, so that they could get the skill without all the work.

[–] VirtualOdour 3 points 8 months ago (2 children)

Yeah but I feel like there's a million books been written since that time which point out how vapid this quote is. To write one must know what you want to say and how to convey it, do you really think it's better to just dive into a task unprepared and muddle through rather than learn first the structure and ideals behind such work?

[–] [email protected] 7 points 8 months ago

I would say both. You need to learn by trying things out, making your own mistakes and finding a style. Then you get input from the outside world on why some peculiar structure make sense or just giving helpful tips. Then you try out more, apply those tips and see what works for you. But you can read as much helpful input as you want, it won't be any good without you trying to apply it and practice.

[–] Ookami38 3 points 8 months ago

At the end of the day, both are required. You need to study to be effective at what you're doing, but at the end of the day the only way words get on paper is writing. You'll also get more out of learning these structures and ideals trying to apply them after you have a bit of time just floundering, getting a feel for the actual task.

load more comments (1 replies)
[–] [email protected] 24 points 8 months ago

Fuck me right in my ADHD. But it is true

[–] [email protected] 18 points 8 months ago* (last edited 8 months ago) (1 children)

Pick a language. Keep it simple. Make something.

Bonus points if it's something very simple that you'll use.

Tic tac toe. Fizzbuzz. A score pad for a game. Something that can theoretically be done in an hour (if you were an expert).

load more comments (1 replies)
[–] [email protected] 17 points 8 months ago (1 children)

Don't forget to RTFM

Someone documented enough of a thing to call it a manual?

[–] [email protected] 7 points 8 months ago

Manual? You mean the half-finished wiki someone put together that is the only source of information while also missing the information I need?

[–] [email protected] 16 points 8 months ago

If anyone genuinely feels this way and wants to get started in coding, I highly recommend doing one of the mooc.fi courses. Codecademy is fine as a taster/refresh but don't waste money on the premium when something like mooc is available for free.

[–] [email protected] 12 points 8 months ago (11 children)

For many, like me, coding just isn't how our brain works. Even if we are interested in it it's basically impossible to get a grip on it. I can figure out code that's already written and do basic editing of it but anything more than that just doesn't click no matter how much time I spend trying to learn.

[–] [email protected] 16 points 8 months ago

It takes 3-6 months for the concepts to click, speaking from experience.

The funniest thing for me is that the definition of object oriented programming is a source of confusion as a beginner yet the most succinct definition as an intermediate/ expert.

[–] [email protected] 8 points 8 months ago

It's just telling the computer in a very detailed way. Are you monolingual? I think the concept of learning how to code is easier if you speak more than one language.

[–] [email protected] 5 points 8 months ago (1 children)

I want to preface this with the mention that understanding other people's code and being able to modify it in a way that gets it to do what you want is a big part of real world coding and not a small feat.
The rest of my comment may come across as "you're learning wrong". It is meant to. I don't know how you've been learning and I have no proof that doing it differently will help, but I'm optimistic that it can. The main takeaway is this: be patient with yourself. Solving problems and building things is hard. It's ok to progress slowly. Don't try to skip ahead, especially early on.
(also this comment isn't directed at you specifically, but at anyone who shares your frustration)

I was gonna write an entire rant opposing the meme, but thought better of it as it seems most people here agree with me.
BUT I think that once you've got some basics down, there really is no better way to improve than to do. The key is to start at the appropriate level of complexity for your level of experience.
Obviously I don't know what that is for you specifically, but I think in general it's a good idea to start simple. Don't try to engineer an entire application as your first programming activity.

Find an easy (and simple! as in - a single function with well defined inputs and outputs and no side effects) problem; either think of something yourself, or pick an easy problem from an online platform like leetcode or codechef. And try to solve the problem yourself. There's no need to get stuck for ages, but give it an honest try.
I think a decent heuristic for determining if you have a useful problem is whether you feel like you've made significant progress towards a solution after an hour or two. If not, readjust and pick a different problem. There's no point in spending days on a problem that's not clicking for you.

If you weren't able to solve the problem, look at solutions. Pick one that seems most straight forward to you and try to understand it. When you think you do, give the original problem a little twist and try to solve that. While referencing the solution to the original if you need to.
If you're struggling with this kind of constrained problem, keep doing them. Seriously. Perhaps dial down the difficulty of the problems themselves until you can follow and understand the solutions. But keep struggling with trying to solve little problems from scratch. Because that's the essence of programming: you want the computer to do something and you need to figure out how to achieve that.
It's not automatic, intuitive, inspired creation. It's not magic. It's a difficult and uncertain process of exploration. I'm fairly confident that for most people, coding just isn't how their brain works, initially. And I'm also sure that for some it "clicks" much easier than for others. But fundamentally, the skill to code is like a muscle: it must be trained to be useful. You can listen to a hundred talks on the mechanics of bike riding, and be an expert on the physics. If you don't put in the hours on the pedals, you'll never be biking from A to B.
I think this period at the beginning is the most challenging and frustrating, because you're working so hard and seemingly progress so slowly. But the two are connected. You're not breezing through because it is hard. You're learning a new way of thinking. Everything else builds on this.

Once you're more comfortable with solving isolated problems like that, consider making a simple application. For example: read an input text file, replace all occurrences of one string with another string, write the resulting text to a new text file. Don't focus on perfection or best practices at first. Simply solve the problem the way you know how. Perhaps start with hard-coded values for the replacement, then make them configurable (e.g. by passing them as arguments to your application).

When you have a few small applications under your belt you can start to dream big. As in, start solving "real" problems. Like some automation that would help you or someone you know. Or tasks at work for a software company. Or that cool app you've always wanted to build. Working on real applications will give you more confidence and open the door to more learning. You'll run into lots of problems and learn how not to do things. So many ways not to do things.

TLDR: If it's not clicking, you need to, as a general rule, do less learning (in the conventional sense of absorbing and integrating information) and more doing. A lot of doing.

load more comments (1 replies)
[–] [email protected] 3 points 8 months ago* (last edited 8 months ago) (1 children)

I definitely feel this. I had to take a programing course in university and I was easily able to follow along up until the lesson on pointers, whereupon I completely lost the thread and never recovered.

I've known a good number of computer scientists over the years, and the general consensus I got from them is that my story is neither unique nor uncommon.

[–] [email protected] 2 points 8 months ago (1 children)

Yeah, some folks have trouble with pointers, and computer-engineering curricula are designed to discourage folks from taking third-year courses if pointers don't make sense. It's a stereotype for a reason. I'd love to know if there's an underlying psychological explanation, or if pointers are just...hard.

[–] [email protected] 6 points 8 months ago* (last edited 6 months ago) (4 children)

I am but one man whose only education in programming was a first year university course in C from almost two decades ago (and thus I am liable to completely botch any explanation of CS concepts and/or may just have faulty memories), but I can offer my own opinion.

Most basic programming concepts I was taught had easily understood use cases and produced observable effects. There were a lot of analogous concepts to algebra, and functions like printf did things that were concrete and could be immediately evaluated visually.

Pointers, on the other hand, felt designed purely of and for programming. Instead of directly defining a variable by some real-world concept I was already familiar with, it was a variable defined by a property of another variable, and it took some thinking to even comprehend what that meant. Even reading the Wikipedia page today I'm not sure if I completely understand.

Pointers also didn't appear to have an immediate use case. We had been primarily concerned with using the value of a variable to perform basic tasks, but none of those tasks ever required the location of a variable to complete the calculations. We were never offered any functions that used pointers for anything, either before or after, so including them felt like busywork.

It also didn't help that my professor basically refused to offer any explanation beyond a basic definition. We were just told to arbitrarily include pointers in our work even though they didn't seem to contribute to anything, and I really resented that fact. We were assured that we would eventually understand if we continued to take programming courses, but that wasn't much comfort to first year students who just wanted to pass the introductory class they were already in.

And if what you said is true, that later courses are built on the assumption that one understands the function and usefulness of pointers despite the poor explanations, then its no wonder so many people bounce off of computer science at such a low level.

load more comments (4 replies)
[–] [email protected] 3 points 8 months ago

I would attribute this to the difference between programming/coding, and software design or engineering. They're related but different concepts. Just like a builder and an architect do different things and complement each other to get a building built, these are also two distinct steps. I do think it's easier and more common for one person to (be able to) do both tasks than in my analogy though, but it's also done separately often enough (in industry).

My point being: don't beat yourself up that you don't know programming, you probably do, it's the software design that you're not familiar with yet. But now that you know what is missing, you can look into it and work on it, and gain a valuable skill to complement your existing skill.

load more comments (5 replies)
[–] [email protected] 9 points 8 months ago

Hold on, no one said I had to learn to know how to code.

[–] [email protected] 6 points 8 months ago* (last edited 8 months ago) (1 children)

Pfft imagine using a mouse to code.

[–] [email protected] 2 points 8 months ago

I'm sure it works fine when held like a pen...

[–] [email protected] 6 points 8 months ago

I started a CS club in college and it was crazy how many members would tell me this. They would ask me questions like I hadn't picked up programming the year before and taught myself via the internet. If you want it, it's out there.

[–] IdiosyncraticIdiot 6 points 8 months ago

Classic result of a business man in charge of a software company.

LPT: work for a company where the decision maker comes from an engineering background, not a business background.

You're welcome.

[–] [email protected] 4 points 8 months ago* (last edited 8 months ago) (7 children)

What if I wanna learn to code because I want to make more money than what I'm making now but lack creativity to make something like a game or an app that's supposed to be good practice?

[–] [email protected] 4 points 8 months ago

You don't need to make something unique, if your goal is to learn.

The best thing you can do is to build something that solves a problem for you, or to build something that already exists that you know well.

As for money, given that companies seem to love layoffs lately, I would say that higher salaries only matter if you are employed. It's an employers market right now, and a lot of people are really struggling to find work again, even from large companies like Amazon and Google.

[–] [email protected] 4 points 8 months ago (1 children)

Learn finance and bookkeeping; work for a bank. Software development is not lucrative; the high-paying jobs are fundamentally tough and cause burnout. Median employment at big software companies is maybe 2-3yrs and it will ruin your ability to relate to other humans.

[–] [email protected] 3 points 8 months ago

Or work for a software development related to finance and bookkeeping so you get the downsides of both.

[–] [email protected] 3 points 8 months ago

I try to keep an eye out for repetitive tasks that might make good projects. I just started a python script that's going to download all my google photos so i can free up my cloud storage.

load more comments (4 replies)
[–] [email protected] 4 points 8 months ago

I mean there must be a reason why someone would want to be a dev. I would go from there

load more comments
view more: next ›