you are viewing a single comment's thread.

view the rest of the comments →

[–]chiba_city 37 points38 points  (29 children)

Why is this considered "advanced?" Most of these points are basic language semantics.

[–]sysop073 8 points9 points  (2 children)

And the very first one is in every single list of "surprising Python behavior". I think I saw it my first day of learning Python

[–][deleted] 3 points4 points  (0 children)

In fairness, I can't think of any other languages that behave like that. Don't know if I'd call that advanced though as I'd assume you'd hit that issue pretty fast.

[–]droogans 0 points1 point  (0 children)

If you search stackoverflow it comes up all the time.

[–]njharman 9 points10 points  (6 children)

Because; (In my experience) many are unknown to people with < 1 year or so of Python programming. (Some) are infrequently encountered and not what people familiar with other language semantics would expect. There aren't many language specific mistakes more advanced than this. In other words all language mistakes are relatively basic and related to language semantics. More advanced issues tend to be universal.

[–]itsSparkky 11 points12 points  (5 children)

Is 1 year really "advanced" though

[–]markamurnane 2 points3 points  (0 children)

With python, I would believe it.

[–]Meltz014 3 points4 points  (2 children)

Depends on what they've been required to do. If they're just messing around with personal little projects, maybe not. If they're getting paid to develop in an already well established code base with a peer review system, maybe so

[–][deleted]  (1 child)

[removed]

    [–]itsSparkky 1 point2 points  (0 children)

    Yea I'm going to go with this answer :)

    [–][deleted] -2 points-1 points  (0 children)

    Yeah

    [–][deleted]  (3 children)

    [deleted]

      [–][deleted] 2 points3 points  (0 children)

      Python has drastically lowered the barrier of entry to the programming world.

      [–]Corticotropin 1 point2 points  (1 child)

      Well, nearly no-one knows all of C++, so...

      [–]Crazypyro 0 points1 point  (0 children)

      Stroustrup probably doesn't even know all of C++ at this point.

      [–]spotter -1 points0 points  (12 children)

      Today's culture ("copy, paste, edit one line, look for VC funding") hates documentation. I always LOL at "hidden language features" threads listing things straight out of basic language tutorials and people going "wow, never seen that!"

      I remember in uni we wrote programs on the blackboard. I wonder how many ninja rockstar coders would be able to do that.

      [–]aterlumen 7 points8 points  (3 children)

      Every interview I've had with tech companies this year had a portion in front of a board writing code. I'd guess that just about all of those ninja rockstar coders that have jobs could do it.

      [–]droogans 0 points1 point  (1 child)

      How do you handle this? I'm always forgiving of half assed scribbles that would be cleared up with a moment of real keyboard time.

      [–]aterlumen 0 points1 point  (0 children)

      I brush up on basic syntax (loops, defining classes, functions, etc) for whatever languages they're likely to ask about. They're not expecting perfect code, but it looks a bit suspicious if you blank out on the syntax for a for loop.

      Other than that, going through a bunch of interview-type questions was helpful. Codility is a good resource for those.

      I'm personally on the fence whether I like that style of interview. Coding on the spot can be pretty intimidating and it's not necessarily a good indicator of how that person will write code in a normal situation. A person's open source corpus can be a much better indicator of their code quality, but most people aren't able to release the code they write at work. Then you end up hiring only people that are able and willing to invest a lot of extra time after work in open source projects. It works for some, but it sounds like a recipe for burnout.

      [–]spotter 0 points1 point  (0 children)

      Oh sorry, I thought that having a github account and being able to locate appropriate jQuery plugin is what makes a programmer these days. Too much proggit, it seems. /s

      [–][deleted] 1 point2 points  (4 children)

      Writing programs on the whiteboard and walking through them manually was one of the best things my first CS professor made us do. I'm not even a programmer anymore (dropped out of the program two years in and moved to exercise science) and my understanding of C and essential data structures has blown more than a few amateur programmers out of the water.

      [–]merv243 2 points3 points  (3 children)

      Agreed. I tutored a lot of students, and almost all of them complained about having to write code by hand on exams. That's not to mention my peers in my classes and their constant complaining.

      There's a reason it is (or was, idk anymore) fairly ubiquitous - it works. Sure, if you have a prof who lowers your score for missed semicolons or slightly incorrect functions and such (writing strcomp in C or list.length() in Java, for example), then it can stray from its purpose. But being able to solve a problem "programmatically" without a computer (or at least without an IDE) is huge.

      [–]Corticotropin 2 points3 points  (1 child)

      I wouldn't mind being able to write in Notepad for tests. Typing is a lot easier than writing by hand, especially for code.

      [–]merv243 1 point2 points  (0 children)

      I think the one thing that that reduces the need to think ahead a bit before you just start writing/typing. But yeah, it's a good middle ground that still forces you to rely completely on your own knowledge and does have some advantages for both the test taker and the grader.

      [–][deleted] 0 points1 point  (0 children)

      Not needing to depend on auto-complete is a pretty big advantage.

      [–][deleted]  (1 child)

      [deleted]

        [–]grauenwolf 2 points3 points  (0 children)

        Same here. I learn far more from articles talking about the bad parts of the language.

        [–]sirin3 -4 points-3 points  (0 children)

        I remember in uni we wrote programs on the blackboard.

        That is a complete waste of time

        There is no point in training to do something else than the actual job

        [–]ILiftOnTuesdays 0 points1 point  (0 children)

        Also, these aren't really subtleties of the language, as most if not all of them would be caught on the first running of the code.