0
39
muhanga

@programming.dev

muhanga 28 points 3 years ago

Game mods and Advent Of Code did it for me.

I did a small RimWorld mod and a parser for NoManSky internal format.

Creating both of them was a blast. I had fun doing programming stuff again.

Advent Of Code allowed me to try different languages in a small bursts of the different problems. Somehow I really like this format.

path: 0 4872902, hotness: undefined, score: 28, children: 0
muhanga 19 points 3 years ago

Learn to talk to people and maintain connections. It is most invaluable skillet that will help you both carreer wise and professionally. The more people you know the better it is for your carreer. Learn to present yourself. Visibility matters very much, so it also good to "sell yourself" sometimes. There is really fine balance between making a sell and just bragging, people don't like second, but okay with first. Learn to teach other people and help them. Most troubleshooting experience I get now is from helping other people. They have a completely different way of doing code that I am (as a whole) and I am just getting this free xp by helping them and also adding one more trouble to my personal solution cupboard.

As for technology, pick what you like and master it, but also make a peeks at what is currently "in vogue". For example I really have no depth knowledge in the current frontend space, but I did take a passing looks (and build simple tutorial projects) with react, angular and dart. It didn't really required a much effort from me, but this helped in the long run to be aware.

path: 0 680855, hotness: undefined, score: 19, children: 0
muhanga 16 points 3 years ago

People hate Java when they are forced to use it. Or when they switch from other language to the Java and expect same semantics and behaviour. Historically Java was quite bad in character/sense ratio this coupled with Enterprise patterns and people who have no idea how to write programs on java resulted in atrocious code bases with nightmare episodes. Currently I am writing non-stop Java for about 15 years. And I am able to tolerate Java quirks, because I know how to side step them. I don't like Java, but given the choice I would pick it as a language that I am willing to code for money out of many others. Java have amazing ecosystem, ci/cd culture and instruments. Dunking on "bad" language is okay especially in the joke context.

In the end there is no ideal language, they are just more or less fitting for a task or role.

path: 0 6997545, hotness: undefined, score: 16, children: 0
muhanga 14 points 3 years ago

This really devolves into "good teams can deploy daily, can raise a small PRs and have small number of rework". And this is like... thank you, but it is obvious. If team is able to do this things constantly it is probably a good team.

DORA says that if your team is able to do same pattern (as they show) it will be "elite/good" team. This really smell like a cargo cult. And managers are already using DORA metrics as good/bad teams metric.

This is clear Goodhart's Law case: ""When a measure becomes a target, it ceases to be a good measure". So either DORA knowingly did nothing to protect against metric gaming or they didn't considered impact they will make. Neither of those is a good in my opinion.

So yeah I don't like DORA in it current iteration.

path: 0 1412009, hotness: undefined, score: 14, children: 1
muhanga 14 points 3 years ago

And sadly one more font I will never be able to use due to missing support of non-latin characters.

Sadly some features are nice.

path: 0 5205915, hotness: undefined, score: 14, children: 4
muhanga 9 points 3 years ago

Just a note by setting up a 30 hours home project you effectively removing "people with lives" from your hiring pool. People who can do a 30 hours either have a lot of freetime currently, or code after the job. And if you really want those people in the team then go ahead, but you are missing on 8 to 5 crowd and that is a very good and diverse talent pool. From my experience 8 to 5 minded people are very good in solving tasks in sustainable manner. They just don't have time to fuck with the system and doing effective "dont-call-me-at-night" solutions.

if you are doing a lot of interviews you need a common set of questions and measures and this take a lot of time and effort to setup.

Personally I would suggest to setup interview as a two parter first ask some theoretical questions and then ask to create a simple code with simple problem related to the questions. This helps to find out if people are really understand what they talking about. This again require a lot of thought to setup an to have small practical tasks relevant to the questions.

For example in most recent interview I asked candidate about algorithm complexity, data structures, garbage collection and then asked them create a simple dictionary to store a hierarchical structure. This helped to see if candidate knows what he is talking about and can use his knowledge in practise. I have seen a lot of people without good theoretical knowledge, but they create a code that is good and working despite their gaps and other way is also correct people have a good theoretical knowledge but fails to apply it in practice.

So figure out who you are searching for. Create an ideal checking solution for their skills and start combing the desert. There is no shortcuts in hiring, sadly.

path: 0 568795, hotness: undefined, score: 9, children: 1
muhanga 8 points 3 years ago

I wholeheartedly agree with that. Every version of Excel is massively worse than previous one. Same with the other Office products. Incremental fixes and impovements covered with unneded features and Ribbon design.

The Ribbon interface intoduction is the most obnoxious design decision that was pushed to the keyboard and mouse users. It only helps "touch" or "pen" users and only marginally.

Then OneDrive aka "we holding your data ransom" Drive. This is the only one Drive that is purelly sheit.

path: 0 7292485, hotness: undefined, score: 8, children: 3
muhanga 7 points 3 years ago

Yes. Clisp to Java to Scala and to the Java finally. Every switch was to get more money. As a result in the end I got more money and more domain experience. Most switches were traumatic for a week and then it was back to normal.

path: 0 6997269, hotness: undefined, score: 7, children: 0
muhanga 7 points 3 years ago

Plain Old Human language. Remember comments? Remember moments when things get very complicated and docs and comments become your only help?

That mostly because none of the languages is the best. Some of them better in some places and worst in others.

For example: Java. Amazing library range, enterprise support and feature and community reach. Java also fail in shambles when you need a low level or guaranteed performance. Erlang. Robust distributed and fault tolerant. Now try to create something that is not network, agent oriented and should work locally only.

Every language has a niche. Look at javascript. JS is only exist because of it's niche. It wasn't good as a language, but it was the only one viable solution in it's niche.

Same with assembly. Nobody sane would use assembly if it wasn't that close to the metal.

There are time tested solution in every niche and it is wise to know why they still there and what drives them.

path: 0 1356750, hotness: undefined, score: 7, children: 2
muhanga 7 points 3 years ago

Which OOP? Alan Kay meant this:

OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I'm not aware of them.

But there is also various other OOP around. And those really about completly different things.

path: 0 7224142, hotness: undefined, score: 7, children: 0
muhanga 6 points 3 years ago

Tldr; take offer, don't quit engineering yet, you are fine

Don't quit engineering if you enjoy it. If you have better offer and the current ship is leaky as fuck => jump the ship. Saving the leaky ships should be very profitable if it is not => you are being heavily exploited.

I jumped the ship thrice. And one time accepted a lower payed position, just because I was quite burnout.

On the topic not using the progress and not understanding the Intenals. Understanding internal will not make you senior. Understanding what you can apply that you already know can make you senior. I remember being in a situation like yours. I thought I didn't know Jack, but then on a newplace I seen people who were running around like a headless chickens on crack. This has given me a good understanding about what knowledge is and that applicable knowledge is the key.

path: 0 7911344, hotness: undefined, score: 6, children: 0
muhanga 5 points 3 years ago

Same problem with "top 10%".

"DORA guys" came to our org in the past. And sing a song of "all successfully teams do that to, so you should too". One of the my question, that was left unanswered, was did they analyse negative scenarios to check if their suggestions actually works and add too the reducing cycle times and what not?

And most of the time my cycle time is more depends on number of meetings I need to attend through day than on anything even remotely related to the coding.

I understand what DORA tries to do, but what they achieve is just another cargo cult.

path: 0 1406430 1411608, hotness: undefined, score: 5, children: 0
muhanga 5 points 3 years ago

Is it possible to build XML parser in it?

If answer is yes then i will build XML parser in it.

Solving a problem you know how to solve and solved more than once is a my goto approach in learning languge or frameworks. Translation of already solved problem to the new operational model or semantic exposes a lot internal stuff and marketing double talk.

This is a lot of work and time so can not recommend it for all cases and situations.

path: 0 7351175, hotness: undefined, score: 5, children: 0
muhanga 4 points 3 years ago

Somewhere someone probably does... But this piece of code really look like someone either tried to inline a bunch of calls or this is code generated object mapper from json or other nested model.

Nobody with a sane mind and serious attitude will use this code as a "real" code. (I still believe in people, despite all the evidence to the contrary I get every day)

As a fun bit though this taken some dedication.

path: 0 1338278 1367096, hotness: undefined, score: 4, children: 0
muhanga 4 points 3 years ago

Clojure. Simple language for complex things. It also has java interop and Javascript interop and c# interop. So I will be fine.

path: 0 5328248, hotness: undefined, score: 4, children: 0
muhanga 4 points 3 years ago

If you are using BitBucket Cloud you can create pr rules to include people into Review based on files change. And then you can create a user for a bot to monitor those PRs using standard BB notification emails. Of course if there is not much PRs bot is Overkill and human will be enough.

You can always "just" create a static script that pulls repo check diff for files and email people if something is found. This way you don't link your solution to the git cloud offering.

path: 0 1728375, hotness: undefined, score: 4, children: 0
muhanga 3 points 3 years ago

Know your basics, display ability to learn. Don't lie and tell the truth. It doesn't really matter for Intern if you have any project behind you. Being fullstack is really hard and at times very impossible and require immense amount of time and effort. So show that you can learn and show that you are honest. This will land you a good place.

path: 0 7763593, hotness: undefined, score: 3, children: 0
muhanga 3 points 3 years ago

I am very very skeptic about this whole DORA org and approach and adoption. I have a greatest respect to the DevOps philosophy, but from DORA I only got a baseless/faceless metrics. Maybe it is also Google driving it that gives me additional rejection impulses. I am quite skeptic at what and how Google does and this colors my perception of all thing it produces.

path: 0 1730240, hotness: undefined, score: 3, children: 0
muhanga 3 points 3 years ago

Coding interviews are a decent way to screen out the false positives. Watching someone solve coding challenges gives you some assurance that they can, well, code.

Hahahahaha. If only. There is very big distinction between ability to priduce code that solves the problem and solving the problem. My personal experiense showed me that passing the coding interview and being a good Software engineer is a two different skills.

path: 0 7763852, hotness: undefined, score: 3, children: 0
muhanga 3 points 3 years ago

And also there is a lot of cases where you really don't need or want static typing. Static typing and type systems are great when they helping you but very bad when you are forced to fight them due to compiler problems or bad modeling.

In the end it is all an engineering problem: which amount of your budget you need to spend on proving programm correctness. Cost/benefit and all of that.

Static typing and unit tests don't make your codebases great, safe and supportable. Thinking and understanding your usecases, decomplecting problems and some future planning wins.

path: 0 1730392, hotness: undefined, score: 3, children: 0

thanks for using Leebra!

go to feed...