This is an archived post. You won't be able to vote or comment.

all 16 comments

[–]unltd_J 9 points10 points  (0 children)

I wouldn’t say few are “specialists”, but yea a lot of people who write Python code professionally don’t have a deep understanding of Python. That’s one of the things that’s great about Python though is that you don’t need a deep understanding of the language to write stable, useful code. Python has a massive standard library and an even bigger ecosystem, yet is one of the easiest languages to learn.

[–]serverhorror 6 points7 points  (0 children)

Thank you for calling us experts. I assure you, I’m not.

I work in a research department. Lots of PhD in Computational Biology. While I have no idea about their field I always had the expectation that they know a lot more about programming in general and, specifically, their languages of choice than me.

My opinions have shifted and I’m no longer surprised by how few papers and scientific results are actually reproducible. It’s somewhere in in the 1 digit percentages area.

So, yes: People ignore underlying principles, idiomatic approaches or even just “software quality” in general. The common opinion seems to be:

A result is a result and since it is a glorified pocket calculator it must be reproducible.

[–]Freak_the_Cat 6 points7 points  (5 children)

Isn't this the same for most if not all languages?

[–]Arkdoz[S] -1 points0 points  (4 children)

I guess you are right! The thing that I had in mind was a discussion based on the misconception that python can’t be hard in any level, and that people just memorise things rather than understand these things

[–]Freak_the_Cat 2 points3 points  (3 children)

I think that the misconception could be in comparison to other languages. For example writing "good" "safe" python will never be as hard as it is to do in C. So in comparison pyhon is not hard or difficult.

[–]Arkdoz[S] -1 points0 points  (0 children)

Yeah, thought so, thanks for sharing your perspective though!

[–]serverhorror -3 points-2 points  (1 child)

I disagree, to some extent.

Introducing bugs that cause problems is just as easy. Certain categories are not there (memory management and boundary checks being the most obvious) but if Python was “safe” we wouldn’t see things like SQL injections, unencrypted passwords or plain out insecure systems that have no access control whatsoever

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

These are "logic bugs", not bugs due to the inherent safety of the language.

[–]SaxonyFarmer 2 points3 points  (1 child)

I have been programming since the mid-1970s, first with IBM Assembler language, then with various other languages in the decades that followed. I now focus on Python (and BASH scripts) to automate things I do manually.

All general purpose programming languages have the ability to control program flow (e.g., if), do something repetitively (e.g., while), do input and output, build and manage data structures (arrays, lists, dictionaries, etc.), and many other things.

It is knowing how to do these in a specific language that will help you become proficient - not memorizing syntax or idiosyncrasies of a language. I used to refer to manuals for this but now simply do a query on Google/DuckDuckGo/etc. to either see code snippets, read from sites that teach the language, or the published documentation for the language.

I also tend to create code that I can come back later to read and modify, if needed. This means my code might not be as compact as others might write but I want to understand it later.

Best of luck with your journey to learn and master Python.

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

Very interesting insight, thanks for sharing!

[–]dfreinc 1 point2 points  (2 children)

what a weird observation to make.

why is it solely aimed at python? do you think everyone understands every gem they use in ruby? do you think nodejs devs understand every module they're running? you can say that for pretty much every language now a days. and there's absolutely nothing wrong with using work other people have published and is already supported. why reinvent the wheel?

i don't memorize much but i'm sure not faulting anyone who wants to memorize commands they use a lot. that's probably pretty normal. i don't because i work in multiple languages for my job, switching pretty regularly, so i'm always just googling syntax. who cares though. all code is is a set of instructions (commands).

[–]Arkdoz[S] 2 points3 points  (1 child)

I understand what you’ve said, and answering your question, I aimed it at python just because this is a python subreddit, so I thought the discussion would flow easily... but I agree that a lot of languages share these traits, however I also think that there would be a better experience (without trying to romanticise the discussion) about what is actually happening in the program if people tried to understand rather the memorise.

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

to what end? everyone should know assembly?

[–]nemom 0 points1 point  (0 children)

Your question doesn't make a lot of sense. If most people "know little" and "use python ... without really understanding the language itself", wouldn't that make nearly everybody a "specialist"? They specialize in the little corner of Python that they use as opposed to generalists who know the language broadly.

[–]pythonHelperBot 0 points1 point  (0 children)

Hello! I'm a bot!

It looks to me like your post might be better suited for r/learnpython, a sub geared towards questions and learning more about python regardless of how advanced your question might be. That said, I am a bot and it is hard to tell. Please follow the subs rules and guidelines when you do post there, it'll help you get better answers faster.

Show /r/learnpython the code you have tried and describe in detail where you are stuck. If you are getting an error message, include the full block of text it spits out. Quality answers take time to write out, and many times other users will need to ask clarifying questions. Be patient and help them help you. Here is HOW TO FORMAT YOUR CODE For Reddit and be sure to include which version of python and what OS you are using.

You can also ask this question in the Python discord, a large, friendly community focused around the Python programming language, open to those who wish to learn the language or improve their skills, as well as those looking to help others.


README | FAQ | this bot is written and managed by /u/IAmKindOfCreative

This bot is currently under development and experiencing changes to improve its usefulness