Overwhelmed by the Simplicity of Python. Any Recommendation?
Spencer Graves
spencer.graves at effectivedefense.org
Fri Oct 12 13:40:30 EDT 2018
On 2018-10-12 11:44, Rhodri James wrote:
> On 12/10/18 17:12, Rob Gaddi wrote:
>> On 10/11/2018 11:29 PM, Kaan Taze wrote:
>>> Hi everyone,
>>>
>>> Since this is my first post to mail-list I'm kind of hesitant to ask
>>> this
>>> question here but as many of you spend years working with Python
>>> maybe some
>>> of you can guide me.
>>>
>>> What I trouble with is not a logical error that exist on a program I
>>> wrote.
>>> It's the Python itself. Well, I'm 22 years old CS student -from
>>> Turkey- and
>>> what they showed us at university was C Language and Java but I
>>> mainly use
>>> C in school projects etc. So it's been few months that I started to use
>>> Python for my personal side-projects. There are lots of resources to
>>> learn
>>> language. I do what I need to do with Python too but I was kinda
>>> shocked
>>> when I solve Python questions at Hackerrank. Even with list
>>> comprehensions
>>> you can implement in very smart way to get things done and easy.
>>> Iterations, string operations. The codes I see on the Internet using
>>> basics
>>> in a very clever way which I couldn't come up with the same solution
>>> if I
>>> tried to for some time. I do understand this ways but coming from
>>> ANSI C
>>> makes it hard to see this flexibility. I probably do things in a both
>>> inefficient and hard way in my projects.
>>>
>>> How do I get used to this? Is this just another "practice, practice,
>>> practice" situation? Anything you can recommend?
>>>
>>>
>>> All the best.
>>>
>>> Kaan.
>>>
>>
>> A) Yes, it's practice practice practice.
>>
>> B) Don't get hung up on finding the clever solution. Comprehensions
>> and generators and lots of other things are great under some
>> circumstances for making the code clearer and easier to read, but
>> they too can become the hammer that makes everything look like a
>> nail. The most important thing is that your code is logical, clean,
>> and easy to understand. If it doesn't take full advantage of the
>> language features, or if the performance isn't optimized to within an
>> inch of its life, well so be it.
>
> I completely agree. I too have come from a background in C, and still
> do most of my day job in C or assembler. It took a while before I was
> writing idiomatic Python, never mind efficient Python (arguably I
> still don't, but as Rob says, who cares?). Don't worry about it; at
> some point you will discover that the "obvious" Python you are writing
> looks a lot like the code you are looking at now and thinking "that's
> really clever, I'll never be able to to that."
I suggest two things:
1. Document your work as you do it in something like Jupyter
Notebooks that were discussed in another recent thread. I use "R
Markdown Documents" in RStudio. This allows me to mix Python code with
text and code for other languages (including R, C, SQL, and others). I
tried installing Jupyter using Ananconda Navigator and failed -- under
both Windows 7 and macOS 10.14.[1] One consulting gig I had involved
spending roughly a week creating an "R Markdown Document" mixing text
with code and results analyzing a client's data, followed by months
replying to questions by asking, "Did you look at p. ___ in the R
Markdown Document I gave you" -- plus a few extensions to that
document. An article in The Atlantic last April claimed, "The
scientific research paper is obsolete" and is being replaced by Jupyter
Notebooks.[2] I'd like to see a serious comparison of "R Markdown
Documents" with "Jupyter Notebooks": The latter may be better, but I
was unable to even started with them after two days of effort.
2. Find a reasonable "Introduction to Python" on the web. Others
on this list should be able to suggest several. I just found
"https://docs.python.org/2/tutorial/introduction.html". A web search
for "an introduction to Python" identified several others. I'd also be
interested in reference(s) others might suggest for "creating python
packages".
Hope this helps.
Spencer Graves
[1] RStudio offers a free "Desktop" version, which I have used routinely
for the past three years. It's available at
"www.rstudio.com/products/rstudio/download". Creating "R Markdown
Documents" (File > "New File" > "R Markdown..." in RStudio) made a
dramatic improvement in my productivity in many ways similar to those
described by Paul Romer in
"https://paulromer.net/jupyter-mathematica-and-the-future-of-the-research-paper".
(I also experimented with File > "New File" > "R Notebook" in RStudio
and encountered bazaar errors I could not understand -- and no benefits
that I could see that would push me to spend more time trying to get
past the problems I encountered. I've used "R Markdown Documents"
extensively for three years -- with R -- and I found it easy to use with
Python once I learned I could do that. See
"https://bookdown.org/yihui/rmarkdown".
[2]
https://www.theatlantic.com/science/archive/2018/04/the-scientific-paper-is-obsolete/556676/
More information about the Python-list
mailing list