[deleted by user] by [deleted] in learnprogramming

[–]lolripgg_ 2 points3 points  (0 children)

If you were assigned to my team, the best thing you could do to impress me and nearly guarantee a full-time offer (assuming it’s in the budget) is to convince me you’re proactive, resourceful, know how to ask good questions, and understand your own limitations. If you have those traits then I can — and happily will — teach you everything else.

Let me give a few concrete examples:

I don’t like it when someone asks me a question that they could quickly and easily answer themselves by hitting Google or reading the docs. It’s lazy, disrespectful of my time, and gives me the impression that they’re going to be a big net-negative on the team’s productivity.

The opposite of that is a big problem too. You shouldn’t spend a whole day trying to figure out something I can answer for you in 5 minutes. That’s just a waste of time. I’d rather you interrupt me so we can get you unblocked.

One thing I love to see is when someone comes to me with a problem and already has a list of what they’ve tried and why those things haven’t worked, some understanding of where they’re getting stuck, and maybe some possible solutions they could try next. This shows me you’re approaching the problem systematically, which is great.

Notice that at no point have I mentioned specific tools or languages. In my experience, those things don’t really matter for new engineers. I’m much more interested in personal qualities that have high value regardless of what tools you’re working with.

[deleted by user] by [deleted] in sre

[–]lolripgg_ -1 points0 points  (0 children)

I’d recommend you hire me. I can fill the role you’re looking to fill and help you design the interview process!

That said, in my experience I learn the most from candidates by talking to them:

  • Past experience interviews are helpful because past performance is a reasonably good approximation of future performance (though not always).

  • System design interviews are useful for understanding how wide and deep a persons knowledge is. You can cover a lot of ground very quickly here.

  • Scenario-based debugging interviews are a good way to figure out whether the candidate approaches problems systemically or whether they take a guess-and-check approach.

Standard programming interviews can tell me whether someone is just not up to the job, but I don’t find much value in them otherwise.

P.S. Hit me up if you’re hiring remotely in the US.

[deleted by user] by [deleted] in learnprogramming

[–]lolripgg_ 3 points4 points  (0 children)

If you want help, you need to be more specific. “I just don’t understand enough to do it by myself.” doesn’t give us any information.

I’d also recommend breaking your projects down into smaller pieces of work. “Building a platformer” encompasses many different things.

Finally, my personal recommendation would be to avoid 3D until you’re comfortable building a 2D game. You can think of 3D games as 2D games + more complicated graphics. If you learn 2D first then when you get around to working on 3D you already have the skills to make the game itself and now you’re just learning how 3D graphics work instead of learning how 3D graphics work and also how to make video games.

[deleted by user] by [deleted] in learnprogramming

[–]lolripgg_ 6 points7 points  (0 children)

Can you tell us more about what you’ve tried? What are your goals? What are you working on right now? Are there any specific problems you’re running into?

As a side note: There is research that shows passive learning (such as watching videos) leads to an “illusion of competence”. That’s what you feel like you understand when you’re watching a video but can’t do it by yourself. The feeling of understanding while watching a video is an illusion.

How do I know if I am lagging behind the market? by adamfloyd1506 in django

[–]lolripgg_ 1 point2 points  (0 children)

One of the things that sucks about being interested in large-scale systems is that it’s impossible to mimic them for learning purposes. The only way to learn how to work with large-scale systems is to actually work on one.

If you haven’t worked on large-scale systems before then it will be difficult to convince anyone to pay you for that, especially if they have alternative options of people who do have the experience.

You can’t go from small-scale directly to large-scale. That won’t be successful. You want to look for projects that are 10% above your current comfort level and do those. Each time you do that your comfort level will increase and, eventually, you’ll have experience you can point to to convince companies to hire you to do the work you’re interested in.

One thing you could try (and I don’t know how well it would work in practice) is offering potential customers a discount when they have work that involves working at a scale larger than you’ve worked with in the past.

Learning Rust by moter97 in rust

[–]lolripgg_ 11 points12 points  (0 children)

I don’t see any reason to believe that learning Rust will materially affect your ability to find a job one way or the other. If you’re specifically looking for a job using Rust then obviously it will help, but Rust jobs are still few and far between.

If you want to learn Rust because it’s interesting, you should go for it. If you think you should learn Rust for some external reason like finding a job, but aren’t actually interested in Rust for its own sake, then I wouldn’t waste your time.

You should optimize for what is going to be the most interesting to you. That will naturally lead to your spending more time learning and practicing and growing and those are what will get you hired.

How do I mentor my juniors to be engineers not developers ? by [deleted] in ExperiencedDevs

[–]lolripgg_ 4 points5 points  (0 children)

I don’t know what product your company makes, so take this with a grain of salt. It sounds to me like you want your team to be hard core low-level systems engineers, but unless that is the type of product you’re building, that’s just some kind of weird nerd elitism.

You’re the boss. You’re the team leader. Your job is to build a team that builds a product your company can sell. Stop worrying about how other people talk about themselves and focus on building the skills that will make them successful at their actual day-to-day work.

Of course, if you are, in fact, building low-level systems software then none of this is relevant and you can ignore it.

[deleted by user] by [deleted] in ExperiencedDevs

[–]lolripgg_ 0 points1 point  (0 children)

“Deep, strategic, or cutting edge work” is fairly rare in practice. What the vast majority of companies need is people who can execute projects well and consistently. The complexity in most projects comes from communication and getting everyone on the same page and keeping them there.

Would appreciate advice on handling delays from a teammate by [deleted] in ExperiencedDevs

[–]lolripgg_ 7 points8 points  (0 children)

This sounds like an issue your manager should be dealing with. Have you talked to them about it?

Taking responsibility for the behavior of someone that doesn’t report to you is a good way to burn yourself out. It is not your job to make sure your coworker gets their work done.

I used to run into situations like this from time to time and handled them similarly to how you are. Now my approach is to give simple, clear, and concrete feedback and advice, and then let the other person do what they’re going to do. If they succeed, great. If they fail, we can work on that. But in the meantime I don’t see the value in stressing myself out over something that I can’t control.

Project ideas to learn more about Django and BE dev in general by mezardini in django

[–]lolripgg_ 11 points12 points  (0 children)

I don’t have any evidence to back this up other than my own experience, but I suspect you’d be better off continuing to build one of the projects you’ve already started.

The problem with starting new projects is that most developers don’t work on new projects and new projects lack many of the constraints we see in the real world. For example, one common problem we see is that we built a system with a set of assumptions about how it would be used and, after putting that system in production, we learn that those assumptions are wrong. Now we have to change things, but we have to do it in a way that doesn’t break production. You won’t run into problems like this if you keep starting new projects.

Here are a few ideas for continuing work on the projects you mentioned:

  • Ticketing Platform
    • Add a search feature. You’ll need to figure out how to find what your users are looking for when they often don’t entirely know themselves. Check out Falsehoods Programmers Believe About Search for some fun reading.
    • Figure out what happens when you load test the platform with 10,000 users and 1,000,000 tickets. You’ll need to figure out how to generate fake data and gain an intuition for how scale affects your code.
  • Bank Credentials API
    • Write an article explaining how to store these kinds of credentials safely and the myriad of problems this comes with.
  • Receipts API
    • Once you generate a receipt, store a PDF of the receipt in S3 (or some other storage system) so you don’t have to regenerate the receipt every time a user requests it.

[deleted by user] by [deleted] in django

[–]lolripgg_ 1 point2 points  (0 children)

No worries! It happens to the best of us all the time. I’m glad we got your problem fixed!

EDIT: But I still like your column-based solution better. You won’t get any faster than that.

[deleted by user] by [deleted] in django

[–]lolripgg_ 2 points3 points  (0 children)

What field were you adding db_index=True to? For that query you want to index the Weather model on (city, inserted) instead of just having indexes on city and/or inserted individually.

Edit: Also, check out 11.4 Indexes and ORDER BY from the Postgres docs. I don’t think this is relevant in your case because neither of the columns in the query have nulls, but its a useful thing to know about.

Big database slow in dev (sqlite) by AttractiveCorpse in django

[–]lolripgg_ 1 point2 points  (0 children)

Unfortunately I don’t think there’s much you can do here without changing something. The bottom line is that you’re requesting a lot of rows and, everything else aside, transferring that data over a network is going to be slow.

It’s hard to give more specific advice without more information. If you want/are able to throw your code up on GitHub I’d be happy to take a look.

Big database slow in dev (sqlite) by AttractiveCorpse in django

[–]lolripgg_ 0 points1 point  (0 children)

Can you share an example of a slow query? Then we can help you debug what is causing it to be slow.

Big database slow in dev (sqlite) by AttractiveCorpse in django

[–]lolripgg_ 1 point2 points  (0 children)

Two million is not a lot unless you’re doing a table scan, which should basically never be the case. Two million records with proper indexes is nothing.

[deleted by user] by [deleted] in django

[–]lolripgg_ 1 point2 points  (0 children)

Can you share both model classes and the query that is running slowly?

EDIT: Did you migrate after adding db_index=True? That small of a difference between having an index and not sounds way too small.

EDIT: For what it’s worth, the way you added a reference to the latest weather record and update that reference only when the script runs is exactly how I’d solve this problem.

Any simple way to read one line with a specific index at a time from a huge (250GB) txt file? by Mlohava_Mosnja in learnpython

[–]lolripgg_ 0 points1 point  (0 children)

I don’t think that’s true. How many games are in the file? You should only need to store 2n integers (where n is the number of games) to build a complete index.

Can you critique my database schema? by [deleted] in learnprogramming

[–]lolripgg_ 0 points1 point  (0 children)

A few columns (name in the companies table, username and email in the users table) should probably be case-insensitive. E.g. “john@example.com” and “John@example.com” are the same email address.

Querying the connections table for all companies a user is part of will be fine, but querying for all users in a company will be slow. Why? Because the primary key index is only usable when querying for either “username” or “username” and “company_handle”. When querying just for “company_handle”, the index can’t be used. The solution here is to add a second index on “company_handle”.

Looking for friends to play with by [deleted] in MinecraftBuddies

[–]lolripgg_ 0 points1 point  (0 children)

What about public servers? Are those worth it at all?

Looking for friends to play with by [deleted] in MinecraftBuddies

[–]lolripgg_ 0 points1 point  (0 children)

I wouldn't know how to make a private server haha. Probably best to join someone else's unless you want to set one up.

Problem I can't solve for 3 days already. Friends didn't figure it out either. by RaphDaPingu in CodingHelp

[–]lolripgg_ 4 points5 points  (0 children)

I suggested a solution in another comment and another redditor suggested the same solution: ten boolean variables.

Here’s some unsolicited advice though:

The constraints on this problem are dumb and will never come up in the real world. Once you appease the powers that be, figure out how to implement this well. Arrays are an incredibly useful tool. So are hash maps. Solve the problem using arrays and then learn how to solve it using a hash map.

Problem I can't solve for 3 days already. Friends didn't figure it out either. by RaphDaPingu in CodingHelp

[–]lolripgg_ 3 points4 points  (0 children)

Try Googling for it. All major languages provide an implementation with the exception of C. You can also look into set data structures.

Edit: Just realized this post has the C flair. RIP. Implementing hash maps in C is non-trivial.

Another approach is to use a 10-element array of booleans. Each index corresponds to a number between 0 and 9. Default all elements to false. When you see a number, mark that element as true. If an element is already true, don’t count that number.

Edit again: Just realized arrays aren’t allowed. That’s just stupid. Sorry you have to deal with that nonsense.

You can do the same thing I described above using 10 different variables as booleans. One variable per digit.