• Breaking News

    Saturday, July 6, 2019

    Got an invite for a 30 minute Google Online Challenge, how screwed am I? learn programming

    learn programming

    Got an invite for a 30 minute Google Online Challenge, how screwed am I? learn programming


    Got an invite for a 30 minute Google Online Challenge, how screwed am I?

    Posted: 05 Jul 2019 07:58 PM PDT

    Hi

    A quick background, I've got a degree in ChemE but enjoyed programming more. Same story as many people essentially, did a few online courses, did a few projects and applied for jobs.

    I applied at Google more than 6 months ago and didn't hear anything until today. I have a short window (just today) to attempt an online challenge for a potential role at Google. I've done introductory CS courses (CS50 and the MIT Python one) and the Nand2Tetris but I ended up doing a lot of ML courses instead of focusing algorithms and data structures. I haven't practised any interview questions or attempted any Leetcode challenges. I have maybe 4 hours to get up to speed before the timeframe to attempt the challenge expires.

    What would be my best course of action? Just wing it and do my best? An quick 10-15 YouTube videos anyone can recommend?

    Thanks!

    submitted by /u/lompa_ompa
    [link] [comments]

    I highly encourage everyone, but especially newbies, to use linting plugins for their prefered IDE

    Posted: 05 Jul 2019 02:18 AM PDT

    Learning alone enforces bad habits

    When you start coding by yourself, after you've already finished with mimicking what someone else did for a tutorial or lecture, especially if you either learn alone, or your school (college) is kinda bad / meh and doesn't actually check your code, just your result - then you are fairly susceptible to bad code practices. Also it's very difficult to learn good code practices without working on a large and well maintained codebase with coder reviews. A good option is books, but it's not foolproof either.

    OK, so how can I fix this?

    Linting!

    I personally use SonarLint but anything is fine, however an IDE plugin / addon would be best, see your mistakes in real time. Ever since I've started using it, I have personally made great, visible, measurable, improvements - not only to my code quality, but I've also developed a better understanding of things and I can't praise linting enough.

    But what is this magic you speak of?

    For anyone who doesn't know, linting is basically a code analyzer that detects bad practices and possible errors. It's not like the compiler yelling at you "I don't know what you meant by pulbic, expected a visibility modifier", it tells you that trying to call a method, from a nullable object that you did not check if it is null or not, might cause a null pointer exception at runtime.

    However that is not all it does, it tracks even bad practices, things that make no sense, things that could simply be better, it explains why that particular thing is not ok, gives examples of an ok replacement and, my personal favorite (though I don't know if this is for all linting services) it gives you a searchable code for that exact thing, that has usually already been discussed about on the internet.

    All this sounds nice and all, but could you give me more tangible examples?

    I shall be using java, and my examples will be on the simple side of things, but I hope it's enough to convince people.

    if (thingIsTrue) { return true; } else { return false; } 

    or

    if (thingIsTrue) { return false; } else { return true; } 

    Both are bad, it will tell you they are bad and it will say "why write it that way, this is way better"

    return thingIsTrue; or return !thingIsTrue It does the exact same thing, it's much more readable, it takes one line, it's better.


    @Override public dispose() { super.dispose(); } 

    No need to override a method, and do exactly what that method does anyhow, let the parent class do its job.


    if (A) { if (B) { ... } } 

    No sense in adding a level of indentation here. Just do this:

    if (A && B) { ... } 

    if (A && B) { ... if (C) { ... if (D) { ... } } return result; } return null; 

    Here you can't combine A && B && C && D because you have actions between ifs. But you can still remove levels of complexity with this trick

    if (!A || !B) { return null; } // without the first condition, nothing is done // so end the logic here, remove a level of indentation. ... etc 

    Side note: From my experience, though this is not from lint, usually statements with many ifs like this, can be somewhat changed into a front loaded approach, aka move all exit conditions in 1-2-3 ifs, put them at the top, then do the logic, aka:

    public Result getResult(DataType input) { if (input == null || input.isEmpty()) { return null; } Object processedInput = intermediateAction(input); if (processedInput == null) { return null; } ... return new Result(processedInput); } 

    FINI!

    And many more. Do yourself a favor, and get lint. [Insert this_is_not_a_sponsorhisp joke here]

    Post Scriptum

    I also really love using a dark theme with syntax coloring. I don't have to ask myself stuff like "Why can't I make a new Whatever without it forcing me to implement this method". Because "Ahhh it's blue, so it's an abstract class". Or purple is a static final, deep purple is an interface, etc. I know when I'm talking with a local variable or a field on color alone. That helps a lot too IMHO.

    submitted by /u/ZukoBestGirl
    [link] [comments]

    Is it okay to not fully understand what you're installing on your PC to setup packages, frameworks, etc?

    Posted: 05 Jul 2019 08:03 PM PDT

    I'm just getting into Javascript and learning to understand how to utilize frameworks and stuff like that.

    Quick example is that I just installed a package on sublime text 3 for a Javascipt linter to help detect errors in my code and I had to install so many things to get it to work through the command line using stuff like npm, node modules, JSON, and run a bunch of other stuff just to get that to work with my IDE.

    Although I've managed to get it working... I feel I understand absolutely nothing that I installed on my computer to make it work. Is this fine or should I be trying to learn all of this stuff as I'm setting it up? Does anyone else get this feeling too?

    Even reading the installation guide on github was a bit of a struggle for me and made me feel like I have a huge lack of knowledge in this field.

    submitted by /u/iDopameme
    [link] [comments]

    Python Editor

    Posted: 05 Jul 2019 07:23 PM PDT

    Hey all, now I'm sure this question has been asked somewhere before, but I wanted a clear answer. In your personal opinions, what is your preferred Python editor? I'm just beginning coding, and am currently on repl.it. I've also heard good things about Sublime Text. Thoughts? Thanks.

    submitted by /u/Ray_Zhang110
    [link] [comments]

    Best Free YouTube Series? (HTML/CSS/JS)

    Posted: 05 Jul 2019 09:52 PM PDT

    Hey, folks!

    I have the privilege of teaching an "enrichment" class this year which basically means I don't have curriculum. How cool!

    For context, I teach 7th grade ELA, but I want to do some coding with my kids. My school knows that I'm tech-oriented which is why they're letting me have two classes of whatever I want... So I figure this is a great way to get them a good jump start in case CS is something they want to pursue.

    With that being said, I learned via Udemy courses (Namely Colt Steele), but I know I'd be breaking all sorts of copyright laws if I just assigned his videos to my kids without paying for X amount of licenses.

    Is there a comparably good free YouTube series that I can use with my students?

    Any advice is appreciated. Thanks!

    tl;dr - Want to teach my students to code; Need something YouTube-based, free, and good.

    submitted by /u/lusciouscactus
    [link] [comments]

    How do people come up with these seemingly obscure C++ lines when they are writing high performance code?

    Posted: 05 Jul 2019 10:21 PM PDT

    I am writing a C++ math library mainly for fun and also to play around with openGL with it. I got done writing the basic things like basic trig functions, pow and some utilities (I intentionally wanted to reinvent the wheel to both make my library self-contained and practice/understand things better).

    I thought maybe I should look up a math library and see how others would do it maybe see if I am not too far away from doing things right (writing good code that does the job well for its purpose and is easily readable) or maybe I could learn a thing or two, you know. I found this and I genuinely felt alienated from C++. I had no idea what I was reading. I do not know what all these #ifs

    No comments:

    Post a Comment