CodeBlooded,
@CodeBlooded@programming.dev avatar

Python, and dynamically typed languages in general, are known as being great for beginners. However, I feel that while they’re fun for beginners, they should only be used if you really know what you’re doing, as the code can get messy real fast without some guard rails in place (static typing being a big one).

Herrmens,

Disagree on this one, even though I can see where you are coming from. I first learnt programming in Java, and it gave me massive problems to understand the structure and typings. Obviously Java isn’t the most beautiful language anyways, but once I picked up python it started to click for me on how to solve problems, because I didn’t have to think about that many things. I could just go for it. Yes, my code was messy in the beginning, but I wasn’t working on any important projects. It was just for fun.

So I think learning how to solve problems is as important as writing clean code. And python really helped me with that.

vrkr,
@vrkr@programming.dev avatar

Spaces look the same on every screen.

callouscomic,

Good programmers need to be creative, flexible (soft skills with others), critical thinkers, and problem solvers. Lacking those kinds of features makes for a rigid and terrible programmer that is near impossible to work with or code behind. Leave the ego at the door.

IonicFrog,
@IonicFrog@lemmy.sdf.org avatar

A lot of programmers need to work on their soft skills.

danhab99,
@danhab99@programming.dev avatar

I’ve met senior programmers who still have to look at their keyboard. How many years do you have to type before you can put out 40 words a min?

OnichiCub,

Easily the most triggering thread I’ve ever read.

I’m out of here.

257m,

I mean they are kind of meant to be triggering. They are “hot takes”.

OnichiCub,

NO I HATE IT

valentino,

The amount of unqualified people is staggering beginning with those who have no university education.

firelizzard,
@firelizzard@programming.dev avatar

Degrees are meaningless, excepting places like CalTech. I’ve known too many ‘programmers’ who had a CS degree yet were damn near useless to think otherwise. Not to mention my own CS degree taught me almost nothing.

FMT99,

Agreed. I’ve known a lot more self-taught folks worth their salt than those with degrees. And those with degrees almost all started coding before they got to the university age.

valentino,

Seems like you went to a shit university

lysdexic,

If you’re worried about your degree’s worth then you are certainly not he right person to talk about going through a shit university.

firelizzard,
@firelizzard@programming.dev avatar

I wouldn’t say it was a shit university, part of it is that I knew how to write code before I got there. But the CS program wasn’t great. My entire point is, if someone has a CS degree from University X and you don’t know if that program at that university is any good, the degree is meaningless. If the university’s CS program isn’t any good, you can’t count on the degree meaning anything.

CodeBlooded,
@CodeBlooded@programming.dev avatar

Degrees are meaningless

my own CS degree taught me almost nothing

I think you meant that your degree was meaningless?

firelizzard,
@firelizzard@programming.dev avatar

My entire point is that any CS degree from any university is meaningless unless you know that university’s CS program is actually good

AnAngryAlpaca,

There are also a lot of e-commerce agencies who just don’t have their sh1t together. Was expected to work on 3 different clients a day who all had different platforms, different requirements etc.

Yes, you can dump some new code into the project that looks like it’s working, but then you don’t have time for any unit tests, exception handling if the user won’t cooperate etc. The other “senior” programmer in the company never set up any local environment but instead ftp’d all changes directly to the live server. I asked him if needs help to set up a local server and debugger, but instead he would just dump vars on the live server and stream the contents of error.log to his second screen to catch any issues…

lysdexic,

The amount of unqualified people is staggering beginning with those who have no university education.

I don’t see it as a problem, because qualifications without competence is meaningless.

You should be more concerned with how qualified people end up performing worse and being less educated, knowledgeable, and prepared than unqualified people.

NBJack,

Oh boy, here we go (inhales):

Agile isn’t that bad. People just believe they are more productive if they are “heads down” and not held accountable for what they write/do.

Functional programming isn’t that great and doesn’t solve all of the world’s problems; it just pushes the issues with state to other parts of your design, and doesn’t scale well in deeply nested solutions.

IDEs with proper code support (i.e. automatic structure analysis, autocomplete, etc.) are one of the best ways to deal with a large codebase that needs refactoring. Doing widescale refactors without one is asking for trouble. If you believe you don’t need it, either your codebase is just that small (which is fine) or playing with fire.

Much of the advice out there on architecture and tooling isn’t properly contextualized on the codebase, market, and team situation. If you believe you have the One True Architecture Solution, you are naive. (Ex. Microservices, large complex code pipelines, monorepos, etc.) Be especially wary of anything from FAANG engineering blogs unless you are also in another letter of FAANG.

There. Got it out of my system. Have fun dissecting it.

SpaceCowboy,
@SpaceCowboy@lemmy.ca avatar

The biggest problem with Agile is bad managers fucking it up. But bad managers will fuck things up no matter which way you do things.

But they’re going to want to somehow see progress, and they’ll leave you alone if they see some cards moving on a board. Even if they have no idea what the cards mean.

Whatever, it’s better than having to do status update meetings.

NBJack,

I can’t speak for your managers, but my past managers didn’t need Agile to f things up. They can do that with anything!

SpaceCowboy,
@SpaceCowboy@lemmy.ca avatar

Yeah that was my point. Agile with shitty managers sucks. But any way of doing things with shitty managers sucks.

moitoi,

Real programmer learned Assembly.

VHDL is a good language.

If you think to be a good programmer, you’re the opposite.

firelizzard,
@firelizzard@programming.dev avatar

Are you saying the only good programmers are ones who aren’t aware of their worth and think they’re bad?

Nintendo,

I think they mean something along the lines of good programmers aren’t big head know-it-alls. they admit when they don’t know something, ask for help, and collaborate as opposed to claiming to be an all knowing monolith software god. we’ve all met those guys at work.

moitoi,

Nope, my sentence doesn’t involve “think they’re bad”.

nomecks,

If you’re not a programming superstar you can probably make more money writing nothing but Terraform code for hapless enterprises.

lysdexic,

What’s wrong with automating processes?

nomecks,

Nothing.

Yearly1845,

Tabs are better than spaces

NightAuthor,

Pressing tab and having the appropriate number of spaces added is objectively the only right answer.

ClemaX,

But you can set a tab width instead so any developer editing the code can adjust the indentation width to his liking, without changing the actual files contents and having to worry about setting the editor up to insert the right amount of spaces.

Ajen,

Tabs for indentation, spaces for alignment

mindbleach,

Tabs are literally designed for aligned indentation, and they’re configurable for clientside viewing. There is no excuse for spaces. I don’t care if your goddang function arguments line up once they spill out onto another line. You’ve got deeper problems.

xigoi,
@xigoi@lemmy.sdf.org avatar

Tabs are designed for tabulation (hence the name), not indentation. The side effect is that a tab’s length changes based on its position in a line, which is terrible for programming. If you use tabs in the Python REPL, it looks like this:


<span style="color:#323232;">>>> def frobnicate_all(arr):
</span><span style="color:#323232;">>>>     for item in arr:
</span><span style="color:#323232;">>>>             frobnicate(item)
</span>
spartanatreyu,
@spartanatreyu@programming.dev avatar

a tab’s length changes based on its position in a line

What does this even mean? A tab is a tab.

Tab’s don’t have multiple lengths inside a file, they all have the same length.

That’s the point of tabs.

xigoi,
@xigoi@lemmy.sdf.org avatar

The horizontal tabulation character moves the cursor to the next column which is a multiple of the tabulation length. See the examples here: en.m.wikipedia.org/wiki/Tab_key

At least for me, it renders like this:

Screenshot of a part of the linked Wikipedia page

Clearly the whitespace produced by each tab character has a different length.

spartanatreyu,
@spartanatreyu@programming.dev avatar

The horizontal tabulation character moves the cursor to the next column which is a multiple of the tabulation length. See the examples here: en.m.wikipedia.org/wiki/Tab_key

Yes

Clearly the whitespace produced by each tab character has a different length.

No, each tab has the same size, the text rendered over the top of the tabs are not the same size.

Always remember the golden rule: Tabs for indentation, spaces for alignment.

mindbleach,

How long is a newline?

xigoi,
@xigoi@lemmy.sdf.org avatar

A newline is the separator between lines, so the concept of length doesn’t make sense for it.

mindbleach,

Correct.

And a tab is the separator between stops.

xigoi,
@xigoi@lemmy.sdf.org avatar

Indeed. It’s a separator, so using it for indentation doesn’t make sense.

mindbleach,

Stops are indentation.

They’re what you indent… to.

Tab goes to the next stop, the same way newline goes to the next line. Exactly the same way. If you write more text before the next line, the amount of whitespace shrinks. That doesn’t mean the “length” of a newline changes. It always goes one line.

A tab always goes one stop.

drathvedro,

The real hot take: Spaces are better than tabs. Fight me

OnichiCub,

Spaces ARE better than tabs.

FreakingSpy,

I work in a massive project where they used both. Often in the same functions. Sometimes mixing 2 and 4 spaces aswell.

xigoi,
@xigoi@lemmy.sdf.org avatar

Tabs could be a good idea if their default size in most environments (and often not configurable) wasn’t 8, which is terribly big.

spartanatreyu,
@spartanatreyu@programming.dev avatar

most environments

What environment are you using that have tabs set to 8?

xigoi,
@xigoi@lemmy.sdf.org avatar
  • Many terminal emulators (may or may not be configurable), including Termux for Android (not configurable)
  • GitHub (by default)
  • SourceHut (not configurable)
  • Vim/Neovim (by default)
  • HTML (by default, I think)

Honestly, I can’t think of an environment that doesn’t have 8-space tabs by default.

spartanatreyu,
@spartanatreyu@programming.dev avatar

Interesting…

Every IDE and editor (gui and tui) I’ve used has always come preconfigured with a tab-size of 4.

The only thing I’ve ever experienced having a tab-size of 8 was github, and I thought that was just a problem with a setting from github’s size that I quickly set back to 4.

It seems that tui editors come with tab-sizes of 8 only when a config isn’t provided, and every environment I’ve used where I’ve used a tui editor has always come with sensible configs (for things like config location, language recognition for syntax highlighting, etc…) including a tab-size of 4.

Crashumbc,

Not everyone can or even should learn programming.

greywolf0x1,

Mind saying why you think so?

firelizzard,
@firelizzard@programming.dev avatar

Many people ‘learn programming’ only in so much as they know how to write code but they can’t solve a problem to save their life.

And while I wouldn’t say anyone is incapable of learning programming, some people certainly have a much, much harder time of it.

tatterdemalion,
@tatterdemalion@programming.dev avatar

The only thing a GUI text editor can be better at than a terminal editor is making it easier to use the mouse.

exi,

That really is one hell of a hot take 😀

I for one really love the zoomed out preview on the right that has become popular in recent years.

jason-williams.co.uk/…/debugging_screenshot.png

Really hard to do in a terminal. If you have errors you can see very fast where they are located/clustered in the file and can already tell just by the shape of the program where it is.

Another example: GUI color picker directly in my editor as a tooltip above color values in css/html templates.

Another example: inline preview of latex or Template fragments.

tatterdemalion,
@tatterdemalion@programming.dev avatar

That really is one hell of a hot take

Yea well most of the comments in here are lukewarm takes so… there you go.

I for one really love the zoomed out preview on the right that has become popular in recent years.

I almost never navigate code based on its order or “shape” in the file. LSP-based symbol tagging or searching is way faster than scrolling. I guess you can click the spot on the preview that you need, but I refuse to reach for my mouse while editing text.

Really hard to do in a terminal. If you have errors you can see very fast where they are located/clustered in the file and can already tell just by the shape of the program where it is.

I use LSP integration to see a complete list of errors/warnings and jump to them.

Another example: GUI color picker directly in my editor as a tooltip above color values in css/html templates.

That’s for design, not text editing ;)

inline preview of latex or Template fragments.

I will use a latex or markdown language server that renders to a browser tab.

To be fair, I don’t do HTML/JS/CSS, so I bet VSCode or other GUI editors are great for that. But that’s specifically because you want to see something rendered. Most of the time you can just see it in an actual browser next to your text editor though.

stinodes,

I almost exclusively do front end, in exclusively nvim. Exactly like you say, just have a browser window (or 2) permanently open.

xigoi,
@xigoi@lemmy.sdf.org avatar

the zoomed out preview on the right

github.com/gorbit99/codewindow.nvim

GUI color picker directly in my editor

github.com/uga-rosa/ccc.nvim

inline preview of latex

github.com/jbyuki/nabla.nvim

spokenlollipop,

Not really what you’re after, but… Using a gui text editor means scrolling is usually smoother. Similarly, horizontal scrolling/wraparound experience is better.

Semi related: Did you know they the jetbrains IDEs have official vim-like key bindings? I converted a windows gvim user to it.

tatterdemalion,
@tatterdemalion@programming.dev avatar

scrolling is usually smoother

This is probably the last thing on my mind when editing text, but sure.

Did you know they the jetbrains IDEs have official vim-like key bindings? I converted a windows gvim user to it.

Yea I’m aware, but why would I use an emulator when I can use the real thing?

stinodes,

I don’t even think that’s the case, honestly. There are ways to make it animated smooth as well, and the scrolling is already more responsive and fast, and thus smooth.

Using vim keybinds in gui ide’s feels bad to me usually cause of how slow they tend to be.

xigoi,
@xigoi@lemmy.sdf.org avatar

I hate animations. I’m glad that scrolling is instant in Neovim.

morrowind,
@morrowind@lemmy.ml avatar

Conversly, I see nothing a TUI editor can do better than a GUI, including use of the keyboard

tatterdemalion,
@tatterdemalion@programming.dev avatar

Yea I think I agree with you there, at least theoretically. In practice I’ve found that it’s easier to use a TUI editor over SSH, and they require less resources, but that usually isn’t noticeable on my PC.

Crisps,

Dynamically typed languages don’t scale. Large project bases become hard to maintain, read and refactor.

Basic type errors which should be found in compilation become runtime errors or unexpected behavior.

steventrouble,

Is that a hot take, though? Pretty much every major tech company and major university agrees.

NBJack,

You know, I wish it wasn’t. Much of Amazon was on a version of Perl for years (and may still be) for almost all of their front end hosting. Facebook has transformed PHP into Hack (which is better for types, though technically not strongly typed), strongly suggesting they were running PHP until 2014. Let’s not forget what WordPress is still in PHP too.

TechieDamien,

Not really a hot take. Why do you think most dynamic languages have the option to tack on static typing?

xigoi,
@xigoi@lemmy.sdf.org avatar

Depends on the community. In Lisp communities, for example, it’s very much a hot take. Which is a shame, because I’d love a statically typed Lisp-like language.

MashedTech,

We can feel it in our bones… And boy is it a pain when you find a huge codebase that is JS only or python without types. Fucking hell dealing with that shit

flamboyantkoala,

Agile in it’s current implementation with excessive meetings wastes more time than the mistakes it tries to avoid.

1847953620,

Is that take really that hot though?

flamboyantkoala,

Say it in standup with management in the room and watch the response

MashedTech,

You’re right about that though

sheogorath,

Blame management for that. I implemented Scrum in a project that I took over without any changes to the framework and it is great. We are able to keep a healthy work life balance, no overtime, good relationship between the product and the engineering team, and the most important thing is on time feature delivery.

mindbleach,

Not an Agile issue, but a “people fucking up Agile” issue. The priesthood of MBAs will adopt whatever terms people like and just hammer them into place to keep doing the same old shit.

We tried baseball and it didn’t work.

FreakingSpy,

I have experienced this but I think that’s the fault of the people implementing it.

For instance, I have been in a 4-person team where the daily meeting took 30 minutes and people often rehashed discussions they had on the previous day. I have also been on a 10-person team where the meeting took 10 minutes on a bad day

flamboyantkoala,

Oh totally seen it work myself but I don’t know that it was agile that worked as much as they had a kickass team.

Some teams just jive well. They communicate, they know what each other is doing, and they can plan with minimal waste. And when it’s successful that’s across all roles not just the devs.

In my opinion those teams would have succeeded in waterfall, kanban or their own home brewed strategy as well.

flamboyantkoala,

Oh totally seen it work myself but I don’t know that it was agile that worked as much as they had a kickass team.

Some teams just jive well. They communicate, they know what each other is doing, and they can plan with minimal waste. And when it’s successful that’s across all roles not just the devs.

In my opinion those teams would have succeeded in waterfall, kanban or their own home brewed strategy as well.

lefixxx,

I like 1-index because its what I learned first, and you like 0-index because that’s what you learned first

Weirdfish,

We just need to compromise, arrays start at 0.5

moreeni,

Peak centrism

warlaan,

My hot take: There is no such thing as 0-index. If you start with 1 it’s an index, of you start with 0 it’s an offset.

mindbleach,

I learned BASIC first, so… no.

And 0-index is what’s real. If you have ever touched hardware that’s 1-indexed, your retro hobbies are even more esoteric than mine.

257m,

I like 0 index because it is 2hat is used under the hood. The index is not really an index but rather an offset from the array pointer.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • uselessserver093
  • Food
  • aaaaaaacccccccce
  • [email protected]
  • test
  • CafeMeta
  • testmag
  • MUD
  • RhythmGameZone
  • RSS
  • dabs
  • Socialism
  • KbinCafe
  • TheResearchGuardian
  • oklahoma
  • feritale
  • SuperSentai
  • KamenRider
  • All magazines