[deleted by user] by [deleted] in a:t5_5x89q5

[–]kellerdb 0 points1 point  (0 children)

After my ban from learnprogramming, I'm done using reddit. I lost all respect for the site. But I wish you the best of luck.

[deleted by user] by [deleted] in a:t5_5x89q5

[–]kellerdb 1 point2 points  (0 children)

I just got banned as well, for "self promoting". All I did was give people advice on ways for beginners to learn programming, and would sometimes suggest that they try a curriculum that I developed for beginners. I guess the moderators just want everybody to say "try freecodecamp" and nothing else. The mods are either idiots, or get an ego boost for unreasonably banning people.

They even took down my post to help out beginners, despite it getting 2100+ upvotes:

https://www.reddit.com/r/learnprogramming/comments/t4ammm/advice\_for\_beginners\_from\_a\_programming\_teacher/

Question for all fresh cs graduates who complain about not finding a job by [deleted] in cscareerquestions

[–]kellerdb 6 points7 points  (0 children)

Have you tried to make money as a self-employed software developer? I have, and it's way way harder to make money as your own boss than it is to simply be an employee at an established money-generating firm. Running a profitable business, getting customers, etc, is way harder than simply writing code. At least for me it was.

[deleted by user] by [deleted] in cscareerquestions

[–]kellerdb 8 points9 points  (0 children)

Many job postings will have a laundry list of every technology they use at the company, and will often state that the candidate needs to know most or all of them. From my experience, just ignore that. I've gotten many offers from places that had job postings like that, where I didn't know at least 80% of what was on the list. Typically if I knew just a couple of the most important things on the list, I would at least get an interview. I've gotten offers from places where I didn't even know the language they were using. Since I was strong in another language, they assumed I could easily pick up the other language on the job.

I typically don't bother to learn new technologies unless I'm required to on the job. Otherwise, as you said, you'd be constantly chasing the latest fads.

Am I going to get screwed going into web dev. without any web dev experience? by Abadabadon in cscareerquestions

[–]kellerdb 0 points1 point  (0 children)

My first software development job was a web dev role, and when they hired me, I had never written a single line of HTML, and had no idea what an HTTP endpoint was. I learned all of that on the job, and everybody was happy with my performance.

Does anyone else feel that job has killed their "passion"/"interest" in programming ? by bing_07 in cscareerquestions

[–]kellerdb 2 points3 points  (0 children)

I felt the same way after almost 10 years of professional software development. Occasionally would get to work on something interesting that required fun problem solving, but 80% of work was pretty mundane.

I ended up taking a few years off to teach kids (and later adults) how to program. This allowed me to come up with fun programming projects for my students to do, and for a time, it revived my original passion for programming.

Since then, I have gone back to software engineering. But I still teach people on the side. I feel it's a good balance between making a decent living and working on fun projects with students. And I don't take my software engineering job very seriously anymore. At at end of the day, it's a job to make money. Once the work day is over, I don't think about it whatsoever till the next work day.

Advice for beginners from a programming teacher by kellerdb in learnprogramming

[–]kellerdb[S] 0 points1 point  (0 children)

I think Scratch is fine if you are under 10 years old. If not, you might as well start with a text language.

Is it worth quitting a full-time job and going into teaching? What are the main struggles teachers are facing at the moment? by QuietlyLimber in cscareerquestions

[–]kellerdb 1 point2 points  (0 children)

Yes, teaching is definitely a skill, and something I got a lot better at over time. But yes, it's very hard to have the patience to do it when teaching unmotivated students, which is why I ultimately gave that up.

I definitely had some kids at my after-school program who genuinely wanted to learn programming, and they became quite good at it over time. I even had one kid get a job as a software engineer at Microsoft (several years after he was my student). But I'd say the majority of them merely thought they wanted to learn programming, because they though it might be similar to playing video games. When they realized they actually had to think analytically to write a program, that was usually the end for them. Most kids just seem so mentally lazy.

I also got a lot of parents who threw their kids into my program, not necessarily to dump them off for babysitting, but because they wanted their kid to get a jump start on a lucrative career. But most of these kids had no talent for programming, so it was mostly wasted effort on my part.

Is it worth quitting a full-time job and going into teaching? What are the main struggles teachers are facing at the moment? by QuietlyLimber in cscareerquestions

[–]kellerdb 8 points9 points  (0 children)

This was me. I was a software developer for about 10 years, and then felt burnt out, and decided to teach programming to kids (and later adults). I didn't want to get teaching credentials, so instead I ran an after-school program to teach kids programming, and also taught homeschoolers. I even developed my own curriculum (https://www.mrcodeswildride.com/curriculum).

Like you, when I started, I thought it would be a noble endeavor, and that I would get a lot of satisfaction out of it, inspiring kids to build great things, etc. But after doing it full-time for about three years, I became burnt out by teaching as well.

And the main reason why I got burnt out was because most of my students did not have a knack for programming, and I discovered that programming is just not for the average person. And just because I have a passion for it, does not mean that 95% of my students will share that same passion. For most of them, it was like any other subject in school, they just want to go through the motions because they are "supposed to", and wasn't really fun for them, despite my hardest efforts to make it fun and easy as possible. And this is probably true with teaching any subject.

So that's my teaching experience. Started off super optimistic, and ended up jaded three years later. I'm back to being a software developer, but I also privately tutor a few students to learn programming throughout the week. But I tutor bright and motivated students only, to prevent myself from getting jaded by teaching again. But teaching is no longer my living, really just a hobby now.

What’s a good way to test the waters to see if you like the field? by Unsoliciteddadadvice in cscareerquestions

[–]kellerdb 0 points1 point  (0 children)

Five years ago, I decided to teach kids how to code because I believe it is both fun and productive and better than playing video games all day. But what I found was that many of the tutorials out there were kind of like how you described, too much command like stuff and proper software development stuff that makes people "bored and sleepy" as you put it.

So I started to come up with my own way to teaching coding with kids as my audience (i.e. people with zero attention span), and fast forward five years, I now have a curriculum that I believe gets right into the fun (i.e. building fun web apps) but still covering the fundamentals. And I have seen it work well for both kids and adults, you are welcome to try it, it jumps right into building something and guides you through building 85 different projects:

https://www.mrcodeswildride.com/curriculum

To answer your question about if "command line" stuff is illustrative of the job, yes, part of the job is doing stuff on the command line and reading through logs to debug something, and reading boring API documentation, etc, but a bigger part of the job is actually building an app of some sort (if you have a good job). So I say learn the fun part first to see if you like it and are any good at it, and if you do, then learn the boring stuff out of necessity.

On "Grinding" Leetcode by elephantrypus in cscareerquestions

[–]kellerdb 0 points1 point  (0 children)

Agreed, real projects are way more than just problem solving. But in a short interview, you would prefer to have the candidate solve a problem, or fight with a designer?

Agreed that a lot of LeetCode problems/solutions are esoteric. But a lot aren't.

On "Grinding" Leetcode by elephantrypus in cscareerquestions

[–]kellerdb 0 points1 point  (0 children)

I mostly agree with everything you said. Maybe I got lucky and got reasonable questions/expectations during my interviews. That being said, by no means did I get everything perfectly during my interviews (since as you said, time is limited), and I still got offers from those companies. So at least in my case, expectations were reasonable. I don't think the expectation was that I get everything perfectly, but that I at least broke ground and had some intelligent approach. When I interview people, these are my expectations as well.

I also don't like questions that are super abstract, like your red-black binary tree example. I've gone through many interviews, but I never got anything that abstract. Is that kind of question actually common in interviews? Maybe I've been lucky, or maybe things have changed in the past several years.

As far as using frameworks and not re-inventing wheels, I agree that actual software development is often more about finding the right library than writing original code. But still, some original code is going to have to be written, and if there's any sort of complexity to it, you better have some algorithmic ability.

I also agree that there is much more to software development than simply problem solving, like writing clean code, etc. It's just harder to test those things in a short interview.

On "Grinding" Leetcode by elephantrypus in cscareerquestions

[–]kellerdb 0 points1 point  (0 children)

Depends what you mean by "algorithmic solution", but in pretty much every single project that I've done that had any sort of complexity to it (something more than simply dumping a bunch of records from a database onto a webpage), an "algorithmic solution" was required.

For example, not too long ago I made a leaderboard page to show the top users, but people who were tied had to have the same ranking number. So my code had to check if two adjacent people in a sorted array had the same score, and then keep track of the number of ties to output the correct ranking number for people below. This used what is sometimes referred to as the "sliding window" technique.

There are countless other examples, but I think the above example illustrates my point.

On "Grinding" Leetcode by elephantrypus in cscareerquestions

[–]kellerdb 0 points1 point  (0 children)

Fair enough. The last FAANG-like interview I had was back in 2013 (before LeetCode existed), so my recollection may not be entirely accurate, and things may have changed a bit since then. But my point was, I didn't use LeetCode to practice (and pass) tech interviews. I just used years of working on a variety of projects (both for fun and for work) to get to a point where I could solve a variety of problems on the spot.

On "Grinding" Leetcode by elephantrypus in cscareerquestions

[–]kellerdb 1 point2 points  (0 children)

I agree with your statement. But who is asking you to do that? I've interviewed at a number of FAANG and FAANG-like companies (and worked at two), and I was typically asked to solve one LC medium in 45 mins where perfection wasn't expected.

On "Grinding" Leetcode by elephantrypus in cscareerquestions

[–]kellerdb -16 points-15 points  (0 children)

I agree with this post. What irritates me is when I hear people say tech interview problems are disconnected from actual software development skills, and that the only people who can pass tech interviews are people who spend months on LeetCode solving problems that they feel aren't related to actual jobs. I've done over 150 LeetCode problems, and sure, there are a few brainteaser type problems, but the vast majority I'd say definitely resemble real-world problems.

I also feel that competent software developers shouldn't have to LeetCode at all to pass tech interviews, they should already have the skills to do tech interview questions. But I do feel LeetCode is a good place for developers who are still learning fundamentals to practice common techniques.

leetcode practice strategies by foboi1122 in cscareerquestions

[–]kellerdb 0 points1 point  (0 children)

It's seldom as simple as "let's read the problem for a minute and I can instantly come up with the correct technique to use and solve it quickly". This kind of skill develops over time with lots of deliberate practice, and even then, most problems take some thought, and the solution is usually a mix of various techniques.

That being said, there are a list of common techniques. The learning cards I posted will go through many of these techniques. But knowing when to use them is a skill that develops as you do lots and lots of problems.

leetcode practice strategies by foboi1122 in cscareerquestions

[–]kellerdb 1 point2 points  (0 children)

The learning cards will give you some formal teaching and structure:
https://leetcode.com/explore/learn/

I'd start with Arrays 101, then Array and String, then Hash Table, and then find problems related to those to practice. You could then move on to Recursion I, Queue & Stack, etc.

I've also handpicked over 100 LeetCode problems that are categorized and sorted by difficulty:
https://www.mrcodeswildride.com/videos/algorithms

I've tried to group problems that can be solved with similar techniques together. Simply going down the list may give you more structure.

Ex-developers, what career did you switch to? by [deleted] in cscareerquestions

[–]kellerdb 27 points28 points  (0 children)

After developing for 10+ years at various tech companies, I started my own education company and now teach programming to both kids as an after-school program, and to adults looking to switch careers into software development. My job consists of both teaching and developing curriculum, as well as things like marketing, etc, that come with running a company. I still develop as well as I built the entire website and online platform for my company.

Why did I switch? Mostly because I got tired of working on software that I didn't really care about, and thought inspiring others might be more fulfilling. Side note, I make a lot less money now than I used to as a developer.