Nice! Though I’m not sure if I belong on the leaderboard. There were a couple solutions I had to look up spoilers / inspiration for. My first year, next year I hope to manage it with no need to check things.
Nice. Software developer, gamer, occasionally 3d printing, coffee lover.
Nice! Though I’m not sure if I belong on the leaderboard. There were a couple solutions I had to look up spoilers / inspiration for. My first year, next year I hope to manage it with no need to check things.
Spent 10 minutes debugging my solution until I reread and found out they wanted the number of keys that fit, not the ones that overlapped. Reading comprehension is not it tonight.
const [locks, keys] = require('fs').readFileSync(0, 'utf-8').split(/\r?\n\r?\n/g).filter(v => v.length > 0).map(s => s.split(/\r?\n/g).filter(v => v.length > 0)).reduce((acc, s) => {
const lock = s[0].split('').every(v => v === '#');
const schema = s.slice(1, -1);
let rotated = [];
for (let i = 0; i < schema[0].length; i += 1) {
for (let j = 0; j < schema.length; j += 1) {
if (!rotated[i]) rotated[i] = [];
rotated[i].push(schema[j][i]);
}
}
if (!lock) {
rotated = rotated.map(v => v.reverse());
}
const pinHeights = [];
for (const row of rotated) {
const height = row.indexOf('.');
pinHeights.push(height !== -1 ? height : 5);
}
if (lock) {
acc[0].push(pinHeights);
} else {
acc[1].push(pinHeights);
}
return acc;
}, [[],[]]);
let fits = 0;
for (const lock of locks) {
for (const key of keys) {
let overlapped = false;
for (let i = 0; i < lock.length; i += 1) {
if ((lock[i] + key[i]) > 5) {
overlapped = true;
}
}
if (!overlapped) {
fits += 1;
}
}
}
console.log('Part One', fits);
Holy shit, 10,000 commits because each change was individual (I’m assuming automated).
This consternation is definitely common. It’s hard to apply skills to something with no long term impact of benefit. I’ve improved my skills by finding stuff I can help on in the communities I participate in.
It’s natural to be overwhelmed, so deciding on a project does scope what you can learn, but a hard part is architecting the foundation of that project.
Introducing new features to an existing project is a great way to get your feet wet - it has multiple benefits, for one of you do take a position as a developer in the future, you likely won’t be architecting anything initially, primarily improving on existing projects. So participating in OSS projects is a similar mechanism to that - you have to learn their codebase to a degree, you have to learn their style and requirements, etc.
Even if you don’t ultimately contribute, it’s still a learning experience.
When it comes to commits, single feature / scoped commits are quality. So this git history is actually underwhelming if the author is full time. This is a good read.
Reject UUID embrace ULID.
I really like the way my current company handles things. Aside from annual raises that take effect July 1st (currently waiting for approval, but if that happens after July 1st the raises are retroactive to the first), we have open bars (free drinks) every other month, company wide lunch events a few times a month, other general events (had a Juneteenth and Pride event this month). Oh, and all these events are paid time (you still have to hit your KPIs though).
A fairly well stocked kitchen (you could make your own lunch if you wanted to), coffee and espresso machines, sparkling water / flavored water one as well, snacks, the whole deal. Yes it’s not perfect but I’ve been happy so far.
My old project I got to architect the frontend ran lean at around 300KB - part of our target audience had older phones so it was designed with that in mind.
At my new job 22MB is child’s play. To be fair they might do it better with the next version.
What if my job title says that? Who’s going to tell my employer they’re wrong.
Then again, “full stack software engineer” as a title might also well just be buzzwords.
!And yes, I know the site is satire lol.!<
I see we have like minded bosses lol
Only reason I have a smart washer and dryer is so they can send me a notification when they finish their load. As someone with ADHD and anxiety that’s a godsend.
IMO the ones with the degree and the aptitude are fine. It’s the ones who struggle despite spending the time who are probably unhappy.
That’s where I thought the joke was going when I first read it.
I figured, but wanted to clarify in case others saw it that way 😅.
I assume the thing a degree usually covers that a self taught lacks is accepted best practices, teamwork, and alot of principles that are better learned before diving into it. So a lot of bad habits to unlearn.
IMO, in today’s information world a degree isn’t necessary for learning, only as proof of learning (which is still very relevant). But a formal education also puts the tools you need to practice in front of you. Software development is an easy field to learn and prove your skills in. Chip design you’d definitely be better off getting a formal education, though you still see people making microcontrollers in games like Minecraft without formal education.
I’m definitely not agreeing with the joke either, I find it confusing at best because someone who finished a boot camp and got a job as a software engineer is still a software engineer.
IMO education plays a smaller role in software development proficiency than aptitude does. But I’m biased, I’m self taught - no boot camp nor college.
I think it’s a joke for the people who pay into those 6-month software engineering bootcamps.
One of the first things I did when I took over an old php project was convert to bcrypt and add logic to automatically upgrade the hash on their next login (and in case you’re wondering, we also removed the old insurance hashes and the upgrade logic after a while, forcing remaining users to do a password reset).
The Dockerfile is essentially the instructions for deploying from scratch. Sure, they most likely only exist for one distro but adapting isn’t a huge chore.
You can also clone the repo and build the container yourself. If you want to update say, log4j, and then attempt to build it, that’s still entirely possible and easier than from scratch considering the build environment is consistent.
Based on your description it sounds like you haven’t given it a fair shake. I’ll take TS over JS any day, at least there is room for improvement. I will say however I personally haven’t been unlucky enough to run into projects that abuse the any type. The worst I’ve run into is a JS library with no typings I have to manually type.
You’re right. And my library aversion definitely made it harder. I think the day I learned the most was day 19, the towel one. Seemed simple at first but I just couldn’t wrap my mind around it, looked at a few solutions and one of the dynamic programming one solutions just blew my mind. Took me an hour or so to just wrap my head around it and then once I understood it I was able to write that abomination I posted from scratch (well, without needing to reference what I studied).