I can highly recommend Okasaki's book on data structures: https://www.amazon.com/Purely-Functional-Data-Structures-Okasaki/dp/0521663504, if you are looking for inspiration or techniques.
I would have also included:
https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742
However at this moment in time I can no longer recommend it... we've just moved too far ahead in the JS world.
The ISBNs are the same, so it is likely that they are the same book and the data on the UK site is just out of date.
Also beginner here:
While "Practical Common Lisp" is a great resource to learn on (and free), I had a lot more fun with Land of Lisp. I found it a lot more beginner friendly than any other book out there and with some great examples inside. It's not free, but it's popular enough that you're school's library might have a copy.
The OReilly book will also be out soon. I think it just went pre-order on Amazon.
The best one I've found so far has been <u>Purely Functional Data Structures</u> by Chris Okasaki. It's a bit of an academic work, but it might help you out. (I know you said algorithms, not data structures, but the algorithms tend to follow naturally from the data.)
It’s like math you’ve gotta do exercises and get a small intuition. Looking at definitions isn’t very helpful. Here is a book I enjoyed, in case you’re interested:
I mean, I loved my high school's C++ and Java classes. I'd previously tried to teach myself and couldn't wrap my head around it, but my high school teacher did great. The only thing I taught myself is Python, and I think this was the book I used (I borrowed it from my college prof, so I'm not 100% sure):
https://www.amazon.com/Learning-Python-5th-Mark-Lutz/dp/1449355730/
I had a great deal of luck with the book "Javascript: The Good Parts". It's a quick read and is aimed at people who are not new to programming.
O'Reilly Publishing: http://shop.oreilly.com/product/9780596517748.do
Amazon: https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742
I think LYAHFGG gives a fun, free, and fast "taste" of Haskell, if you just want to try it out. If you want to actually commit to learning it, I second the recommendation of https://haskellbook.com as it:
The only downsides are that it isn't free (though it is very reasonably priced) and it is very long (~1200 pages). Don't let either of those obstacles stop you, though.
PS, https://www.amazon.com/Get-Programming-Haskell-Will-Kurt/dp/1617293768 seems a bit less monumental in size, a little more focused on "let's make some programs" than "let's understand every nuance." It seems to have some positive reviews though I haven't read it entirely. If HPFFP is too intimidating (again, I don't think it should be, but YMMV) then I'd suggest you take a look at GPWH.
I fiddled around with the code you provided and found a few things:
However, since we want this to work all the time, we've got to be more sneaky. I know you mentioned you tried Selenium and still didn't have luck, but I tried anyway and had much more success. It seems Amazon is unable to tell that my webdriver is being controlled by a script. Interestingly, when I got the page source here it was parsed just fine by any parser. I'm not sure why that is.
Here's the code I used. YMMV depending on what webdriver you have installed, but let me know if this helps at all! If not, hopefully we can troubleshoot it :)
from bs4 import BeautifulSoup from selenium import webdriver
browser = webdriver.Chrome() browser.get(url)
content = browser.page_source
soup = BeautifulSoup(content, "html.parser") title = soup.find(id="productTitle")
print(title)
browser.close()
For me, this outputs <span class="a-size-extra-large" id="productTitle">Learning Python, 5th Edition</span>
as expected.
Mark Lutz has some great books on Python programming. The most recent 5th edition is a great resource and asset for any python programmer.
I can recommend a good books for you to read for JavaScript. Try find JavaScript: The Good Parts by Douglas Crockford. It's very short (176 pages) for a technical book and makes it a lot easier to understand the language.
What specifically do you hate about JS?
Crockford has advocated for "the next language" for the entire past decade.
That next language is already here in the form of "The Good Parts" of JavaScript.
https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742
Αγαπω αυτο το βιβλιο. Το διαβασα καποτε οταν ειχε βγει η πρωτη εκδοση, το τσεκαρω οποτε βγαινει καινουρια εκδοση. Οπως βλεπεις δε χρειαζεται να το αγορασεις, δοκιμασε να του ριξεις μια ματια μηπως σε ψησει (αφιερωσε ξερωγω μιση ωρα).
Επισης παρα πολυ χρησιμο οταν εχεις ηδη φτιαξει αρκετα πραγματα (οχι για να μαθεις, αλλα για να μαθεις να κοιταζεις τη γλωσσα πιο προσεκτικα), ειναι τουτο.
Η γλωσσα πλεον αλλαζει γρηγορα, κυριως προστιθενται πραγματα, ο καλυτερος τροπος ειναι να βρεις κατι που σε ενδιαφερει να φτιαξεις και να ξεκινησεις να προσπαθεις. Ε και οταν δουλεψει κοντα στο πως το θες, προσπαθησε να το φτιαξεις καλα.
Οπως και να το πιασεις, να θυμασαι οτι το να γραφεις κωδικα μοιαζει με το να παιζεις ενα μουσικο οργανο. Οσο πιο τακτικα το κανεις, τοσο πιο γρηγορα θα μαθεις. Οσο περισσοτερο το απολαμβανεις, τοσο πιο καλα θα μαθεις. Θελει καιρο, γινεται λιγο λιγο, αλλα οταν περασει ο καιρος ειναι (για καποιους) πολυ πολυ ευχαριστο!
Καλη αρχη με τη js!
Actually I really appreciated Get Programming with Haskell by Will Kurt as an intro book but that wasn't my point. I'm just saying I wish there were more modern and in depth prolog books, for multiple reasons.
I think one of the challenges is that when doing web dev, you've got three separate things to learn:
It can be really easy to confuse yourself if you try to master all three at once. And that's assuming you're already totally solid on HTML and CSS, but there's always more to learn there.
To better understand JavaScript as a pure language, try:
https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742
After that I'd recommend trying to build some really simple sites using "vanilla JS" to manipulate the DOM. Make heavy use of your browser's developer tools and get comfortable making things move and appear and fill in using JS.
Finally when you're getting the hang of that, add in React or some other front-end framework, which makes your life easier. Ideally you understand the underlying JS at that point so it isn't "magic", it's just a time-saver.
Just keep working with Sedgwick or similar books. A commonly recommended book is Purely Functional Data Structures, but I'm not convinced that is a good resource for solving code challenges.
My experience of the code challenges is that they don't usually ask to implement a traditional data structure or algo.
Mostly they are hackerrank type toy problems of varying difficulty. I suggest picking a website like hackerrank, and work thru the problems. Try to use the idiomatic scala style, emphasizing purity and lack of mutable state. See if recursion will make the solution more elegant.
Sometimes I'll hack out an imperative solution, then redo it scala style. While you are at it, whenever you get to a step in the solution, there may be a standard library function that does what you need. For example you might need to split the list into 2 lists based on a condition. Scala has the partition function. I slowly improve my knowledge of the vast std library that way.
You will also need to be familiar with the UI of hackerrank, etc because some companies will use one of those as part of the challenge. In Hackerrank, there will usually be 2 official solutions to the problem, as well as a community discussion of people sharing their solutions. You may not find a Scala solution, but examples in Python will often give me ideas on how to solve the problem in a better way.
Similar situation here. I made that exact decision in early 2015.
It might help you to know that I haven't looked back. :)
I don't know where you are on your Rust journey, but for C++ programmers, I recommend taking a look at Programming Rust.
> "Sai consigliarmi qualche libro su cui studiare?"
L'unico che abbia mai usato è stato "Learning Python", poi per altri linguaggi ho sempre solo usato docs su internet e tanta pratica (e tanto leggere codice di altri su GitHub!).
> "Perché purtroppo Java?"
Perché è un linguaggio che reputo mediocre per diversi motivi e che ho sempre trovato incredibilmente limitato. Detto questo, se è solo per imparare i fondamentali di OOP può anche andare bene, ma se dovessi usarlo nel quotidiano probabilmente preferirei lanciarmi da una finestra 😄
> "penso che inizierò anch’io da C o da Python"
Ottima scelta! Soprattutto anche C, che ti costringe ad avvicinarti da subito e imparare concetti come puntatori, allocazione di memoria e altre cose più di basso livello 🙂
Imposter syndrome is a lie, your only a fraud when you’re intentionally scamming people 😜
There are a ton of resources online, one I recently went did a refresher with and found helpful is JavaScript: the good parts.
https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/ref=nodl_
It is relatively cheap and does a great job going over all the essentials.
Well, don't beat yourself up, you did a great job!
I would say that from my own experience planning in programming is not easy beforehand, as you often don't know what you end up with before you build it. This comes easier with practice when you start recognize patterns and know your personal understanding which a better suited for your particular style.
Rewriting the code you already have is a great way to find out what style work better for you. I enjoy this algo for this:
Do it.
Do it right.
Do it fast/beatiful/etc
With AoC you have a great chance of following this: first you just try to make all pieces fit together, and then you need to figure out what's the proper way of adjusting them. It's beneficial once you get the answer to rewrite some parts of it then so that you would be able to get more out of it.
ANYWAY sorry for a long message, check this book "exercises in programming styles" if you want to learn more about ways to write python code in different ways. I strongly believe it's more beneficial for beginners than trying to learn data structures and algorithms
I started with Get Programming with Haskell by Will Kurt and thought it was fantastic. If you're a bit more advanced you may prefer Practical Haskell by Alejandro Serrano Mena.
Erről jut eszembe, van egy jó könyv: Javascript: The good parts
https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742
Android is now Kotlin first so it's wise to consider it.
I bought the book Kotlin in Action after asking a similar question in December. It's more for the likes of us making the switch and not a beginners book.
I still haven't made the switch but I will when I have too.
Ciao! Non sono sicura di essere la persona più adatta. Io lo sto studiando in università, ma è un corso molto breve. Non so quando riuscirò a riprenderlo in mano ed approfondire. Credo però che ci sia veramente tantissimo materiale online. Come libro, io ne utilizzo come base questo: https://www.amazon.it/dp/1449355730?tag=hackr069-21&geniuslink=true. È molto striminzito, ma potresti utilizzarlo come "indice" per poi approfondire i vari contenuti.
https://www.amazon.co.uk/Kotlin-Action-Dmitry-Jemerov/dp/1617293296
It didn't mentioned it in the cover, but it covered a lot of the difference between Java and kotlin which I found very useful.
If you've already done rustlings and rustbook, i would advice you to write a small project. It will give you more knowledge than any dry material that you may read now. And when you're done with that, you can take https://www.amazon.com/Programming-Rust-Fast-Systems-Development/dp/1491927283 or https://www.amazon.com/Rust-Programming-Language-Steve-Klabnik/dp/1593278284. This will be a good start.
Consider making informative videos about what you already know but using the correct terminology and jargon if thats what you're talking about. If you make a tutorial, even if you dont publish it to the public, you spend a lot of time using the correct terms in the correct place. This is what university was handy for, it cost me a ton to learn what all the jargon and terms are, you can do it for free but at university they ram it into your skull. But the ramming is done via homework and lecture and whatnot, so if you do your projects out loud explaining things as you go, and get good at explaining with the correct terms you should be good. As far as books, i liked the cheap version of the pragmatic programmer... aka. Programming Language Pragmatics by Michael L. Scott amazon