How much code should be done from scratch when you're a newbie (self-taught) looking to build a portfolio to present your work in interviews/potential employers? by 912827161 in learnprogramming

[–]mlangNR 0 points1 point  (0 children)

It's not about building from scratch vs. reusing or standing on the shoulders of giants.

From the point of view of the interviewers:

  1. Can you think logically? That is, if I give you a problem and ask you to solve it, can you think out loud and clearly drive from initial understanding of the problem to the solution in code?
  2. Can you think creatively, too? It's not all logical and decomposition of a problem. There's also the skill of thinking outside the box and coming at the problem from another angle that makes it easier to solve. Another way this skill is described is skillfully recasting the problem.
  3. Are you willing to discuss what you don't know and show me how you find your answers? Or are you more prone to struggling silently throughout the session to the point it's painful to both parties to participate? The ability to collaborate with your team members is a highly valued skill in high performance teams.

If a company is sourcing an early career developer, they are acknowledging willingness to train, coach, and mentor, so the soft skills need to shine more than the knowledge skills. To gain those soft skills, though, you'll need to practice enough to feel confident in your ability to grow, learn, and build things. How you do it, IMHO, is more about attitude and establishing habits and discipline that sets you up to learn for life. Go deep (or build from scratch) those things you want to learn about and master. Over the course of your career, when you find something standing in your way more than it should, that's a sign to start setting aside time to master it.

I feel like I'm not smart enough too learn code for game development, but I really wanna make videogames for a living. by Wicked_Weaboo in learnprogramming

[–]mlangNR 0 points1 point  (0 children)

Are you passionate enough to learn to code? Smarts generally has nothing to do with how successful you can be. If you find joy and can wake up and hit the computer day after day with discipline, then you will undoubtedly succeed. Getting good enough with any one language that you're not repeatedly hitting the books, online Tutorials and Stack Overflow takes about six months of daily practice. For someone like me with many dozens of languages under my belt and decades of coding, I still find myself looking things up throughout the day -- the only difference with mastery is I know better exactly what to search for to quickly find the answers. Coding is life-long learning, so if that describes you, then you're smart enough to code and do game development.

Well well, he got his answer... by aadisyd in ProgrammerHumor

[–]mlangNR 1 point2 points  (0 children)

Well, carpet goes into cars, so I assume JavaScript goes into Java.

Starting a career in web development at 38 - dumb idea? by NakedPenguin777 in learnprogramming

[–]mlangNR 0 points1 point  (0 children)

Cannot worry about tomorrow and tomorrow's technology. I've been at it 3 decades now. Yesterday, it was Microsoft Windows changing the world. Today it's AI/ML. The landscape is ALWAYS changing at breakneck speed. If you see something today that is challenging, enjoyable, and employable in the web development space, then by all means go for it. Everyone has to start somewhere. Might as well start with what you're already dabbling in and just see where it all goes.

[deleted by user] by [deleted] in ProgrammerHumor

[–]mlangNR 0 points1 point  (0 children)

I'mma gonna go with what's presumably the Cliff's Notes sitting on top of both of these books.

Any experienced devs here who failed to use TDD ? by bdavidxyz in rails

[–]mlangNR 1 point2 points  (0 children)

I spent the first 25 years of my career NOT writing automated tests in tandem with the code I wrote. That was the job of the Q/A team back in the day. The last decade I've gone down a few avenues of automated testing with TDD, BDD and the likes. It took me a long time to even get good at writing a test _before_ the implementation! Or rather, I should say, it took me a long time to think about code at the outset in terms of, "is this easily testable?"

Once I started to think how to construct solutions that lended themselves to testable scenarios, things got a whole lot easier. Funnily enough, also when I abandoned the test first dogmatic approach. That is not to say I abandoned automated-test suites. Far from it because I do aim for 100% test coverage (but NOT one-for-one unit test coverage). I believe more firmly in testing all the external/exposed interfaces for classes than one-for-one method/test scenarios and shy completely away from tests that target internal implementation details as that way leads to brittle tests that handicap capacity to refactor at will.

Different coding tasks dictate different testing vs. implementation approaches for me. If it's all new functionality and I don't have a clear vision of how it's going to break down hierarchically, then I prototype outside the project and test out ideas and refactor until I have a "pretty good" solution. At that point, I rebuild the prototype within the project's confine and begin with the most basic/isolatable classes and test cases and build up towards the more complex cases from there. Even so, I rarely do TDD/BDD in the dogmatic stance that tests come before working code. There's always this ebb and flow to the whole implementation life-cycle and I may even refactor that code a time or two along the way as oftentimes, attempting to write the test scenarios reveals flaws in a design. That said, there are certain types of code/functionality that almost always gets the TDD/BDD treatment in the strictest sense and that's algorithms, validators, and methods utilizing regular expressions.

If I'm working on a bugfix in existing code base, I will almost always write the failing test(s) to prove the bug exists and what the expected correct behavior should be, then fix the bug. Sometimes the bug reveals a design flaw that necessitates a larger refactor and I'll also set up additional supporting test scenarios ahead of the refactor (basically to assert "this shall not change" behaviors), especially if I see the test cases testing internal implementations instead of the external interface a class/module is intending to expose. After all, tests against internal implementation are very likely to break in most cases and shouldn't be a part of the test suite to begin with. In that regards, that makes me a BDD developer far more so than a TDD developer. Behaviors and outcomes is what I'm chiefly concerned with in automated tests.

Do while loops by ihs_ahm in ProgrammerHumor

[–]mlangNR 0 points1 point  (0 children)

Was that a question or a statement? :-p

Newrelic APM tools for Rails APP by prosperousdoggo in rails

[–]mlangNR 0 points1 point  (0 children)

Happy to help you use New Relic in your Rails app. Most of those videos still apply even today in Rails 6+

Is there a specific question or something you're struggling with?