Python Forum
The best Programming books?
Thread Rating:
  • 2 Vote(s) - 4.5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
The best Programming books?
#11
This is a great book, and now free, Machine Learning by Ian Goodfellow, Yoshua Bengio and Aaron Courville: Now Online free by MIT: http://www.deeplearningbook.org/

Exercises here: https://github.com/goodfeli/dlbook_exercises
Lectures here: http://www.deeplearningbook.org/lecture_slides.html
Discussions: https://www.commonlounge.com/community/e...658ef85cb1
Videos (downloadable) for every chapter: https://www.youtube.com/channel/UCF9O8Vj...-Pg/videos

I wrote a quick down-loader for the videos, I did not include the book club videos, so if you want them, add to the dictionary.
Before using, change basepath if you would like the videos to download to another directory.
As written, they will be downloaded to 'videos', which if it doesn't exist will be created.

I have included two functions to save and load the dictionaries to and from a JSON file. You can create a separate script to create the dictionary, and replace with a call to 'load_url_list' once the JSON file exits.

This program requires pytube which can be downloaded (from command line) with:
pip install pytube
Here's the (quickly tested code)
# Author: Larz60+ January 9, 2019
from pytube import YouTube
import json
import os


class GetDeepLearningVideos:
    def __init__(self):
        os.chdir(os.path.abspath(os.path.dirname(__file__)))

    def downloadYouTube(self, videourl, path):
        yt = YouTube(videourl)
        yt = yt.streams.filter(progressive=True, file_extension='mp4') \
            .order_by('resolution').desc().first()
        if not os.path.exists(path):
            os.makedirs(path)
        yt.download(path)


def save_url_list(basepath, url_list):
    savefile = os.path.abspath(f'{basepath}/url_list.json')
    with open(savefile, 'w') as fp:
        json.dump(url_list, fp)


def load_url_list(basepath):
    loadpath = os.path.abspath(f'{basepath}/url_list.json')
    with open(loadpath) as fp:
        return json.load(fp)


def main():
    gyt = GetDeepLearningVideos()
    basepath = './videos'
    baseabs = os.path.abspath(basepath)

    # Videos published by: Alena Kruchkova
    if not os.path.exists(baseabs):
        os.makedirs(baseabs)
    url_list = {
        'Chapter1': {
            'title': 'Introduction',
            'presenter': 'Ian Goodfellow',
            'url': 'https://www.youtube.com/watch?v=vi7lACKOUao'
        },
        'Chapter2': {
            'title': 'Linear Algebra',
            'presenter': 'Gavin Crooks',
            'url': 'https://www.youtube.com/watch?v=mJ5PSaHeA0k'
        },
        'Chapter3': {
            'title': 'Probability',
            'presenter': 'Pierre Dueck',
            'url': 'https://www.youtube.com/watch?v=lAkUEnR3fKw'
        },
        'Chapter3a': {
            'title': 'Information Theory',
            'presenter': 'Yaroslav Bulatov',
            'url': 'https://www.youtube.com/watch?v=zCZJKMI4Q-U'
        },
        'Chapter6': {
            'title': 'Deep Feedforward Networks',
            'presenter': 'Timothee Cour',
            'url': 'https://www.youtube.com/watch?v=oFa0Xe6fcBk'
        },
        'Chapter10': {
            'title': 'Sequence Modeling',
            'presenter': 'Ian Goodfellow',
            'url': 'https://www.youtube.com/watch?v=ZVN14xYm7JA'
        },
        'Q&A': {
            'title': 'Q & A',
            'presenter': 'Yaroslav Bulatov',
            'url': 'https://www.youtube.com/watch?v=NMhK2A_N0Nc'
        },
    }

    for chapter, detail in url_list.items():
        savefile = os.path.abspath(f'{basepath}/{chapter}')
        if not os.path.exists(savefile):
            url = detail['url']
            print(f"Downloading {detail['title']} by {detail['presenter']}")
            gyt.downloadYouTube(url, savefile)
        else:
            print(f'Not downloading {chapter} as {savefile} already exists')


if __name__ == '__main__':
    main()
Reply
#12
Thanks to all for the replies. They are much appreciated. I will try to read each and every book suggested here, when I can. Money is tight these days lol


(Jan-09-2019, 05:34 AM)Larz60+ Wrote: I am hoping to still be doing this in 20 years, ... I am excited for the future, and love seeing new technology.

I have a question about that. And its "Do you think this will happen"? My theory is, that eventually, there won't be any programmers. Not as we know them today, and not as they have been since the beginning. That finally, what will happen is that a program will be written, that can listen to english and translate that into machine code. So for example you'd say something like "Program, I want you to write me a new program that will run this machine I have here. And it will include these functions."

And you'd go on and on, explaining how everything was going to work and what it was going to do. And this program would translate that into another program that it would send to this new machine. And it would all work. Maybe it would have to test its code, but I think you get the idea. No more typing out the code, only saying what you want, and in plain english. Do you think that this will happen one day? And be complete, no need for coding the old way anymore.
Reply
#13
bennylava Wrote:Do you think that this will happen one day?
It's already started, look at this pycon 2013 video. This one only pilots the editor, but it's almost certain that robots will assist programmers in the future. There are so many things to automate! I can't believe it will mean the end of programmers. Even if professional programmers disapear someday, there will always be passionate programmers working from their home or their garage!
Reply
#14
https://www.youtube.com/watch?v=eqv1nt--H-0
Recommended Tutorials:
Reply
#15
(Jan-09-2019, 01:44 PM)Gribouillis Wrote: Even if professional programmers disapear someday, there will always be passionate programmers working from their home or their garage!

Yes but if the profession goes away, unfortunately that will mean that 99% of programmers will go away. Well at least the kind we have today. Even the home guys who want to program, will just get a copy of this "Robotic Programmer" that they can dictate to, to write the programs for them. After all, why do things the hard way when you can just talk to it. Even though you may talk for a very long time before the program you want to create is completed. I could see a year or more in many cases. But I can't see this being any time soon, maybe it will be normal 20 years from now.
Reply
#16
(Jan-09-2019, 04:42 PM)bennylava Wrote: Even the home guys who want to program, will just get a copy of this "Robotic Programmer" that they can dictate to, to write the programs for them.

I don't think so. I used to do a lot of work in SAS. SAS has been pushing GUI programming for some time, I think because they are trying to target managers. They even denied a paper I wrote for a conference where I showed how to do something you could do in a GUI, but I did it with code for finer control. The reason they rejected it was "it was too technical."

There are still a lot of SAS programmers writing their code in the text editor. I think there always will be.

Take a look at project Euler. There are still people writing assembly language code there. Higher level languages have not gotten rid of that, so I don't think GUI programming or whatever will get rid of text programming.
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness.
Recommended Tutorials: BBCode, functions, classes, text adventures
Reply
#17
Quote:Yes but if the profession goes away, unfortunately that will mean that 99% of programmers will go away.
Ask yourself this question: How many programmers did it take to create Google?
Answer, see: https://www.google.com/about/our-story/
how many software engineers does Google employ today?
Answer: about 85,050
Reply
#18
I don't think that programming will ever disappear as profession, though it may shrink (I could see it growing as well though).

The reason we don't already use natural language for programming is that it's imprecise. Perhaps we can come up with a program which knows how to ask all the right questions and could guide a human through all the specifics, but I don't think most people are willing to think in as technical a way as I think is required for even the most simplified programming.

I do suspect that programming will become more machine aided than it currently is. I'm actually surprised by how little it is at this point (e.g. I think the work in this paper will one day be integrated into regular working environments). But I think humans will be an important part of programming for the foreseeable future.

Lastly, I've heard that although computers are better at chess than people nowadays, a person with a computer aiding them is better than a computer. I think that will carry over to programming even if, to my surprise, it does become fully automated to a degree. (Maybe like the difference between mass-produced crap and high-quality hand-made things?)
Reply
#19
(Jan-09-2019, 04:42 PM)bennylava Wrote: After all, why do things the hard way when you can just talk to it. Even though you may talk for a very long time before the program you want to create is completed.
(Jan-09-2019, 12:52 PM)bennylava Wrote: That finally, what will happen is that a program will be written, that can listen to english and translate that into machine code.
I dont see this happening. At least not in my lifetime anyway. My generation is used to keyboarding. We have seen time and time again attempts at voice identification and laugh at it. I dont know anyone personally that utilizes it seriously. The only difference in my generation and my kids are they are learning touch screens instead. They will probably prefer some form of soft keyboards to input data in every day use, but i dont see voice.

Not to mention bugs. What happens if the program misidentifies a word and bugs the program. If the program switches words to machine code there is no middleman for the programmer to confirm or deny.

Also there are still a lot of people out there that would prefer typing over talking. I can type faster than i can talk. I think the concept of Alexa or Google Assistant is more a toy than tool. I would much rather walk to a light switch than speak. The day i see computers replaced with Google assistants in the work place is the day i would think differently.
Recommended Tutorials:
Reply
#20
(Jan-09-2019, 06:12 PM)micseydel Wrote: Lastly, I've heard that although computers are better at chess than people nowadays, a person with a computer aiding them is better than a computer.
The game go cannot even be replicated to the standards of professionals in todays computer. Professional go players can only get a decent game by another human player at the same level. At about the level of amateur dan or even single digit kyu, you can beat any computer. In the opening of chess there are 20 possible moves, while in go there are 361.

Quote:Number of possible positions in a game of go: 10^(10^48) to 10^(5.3 × 10^170)
Number of possible positions in a game of chess: ~10^43 to 10^50
Recommended Tutorials:
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020