Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Elixir for Programmers by Dave Thomas: Online Course #50

Open
YvesMuyaBenda opened this issue Jul 22, 2017 · 3 comments
Open

Elixir for Programmers by Dave Thomas: Online Course #50

YvesMuyaBenda opened this issue Jul 22, 2017 · 3 comments
Labels
enhancement New feature or enhancement of existing functionality

Comments

@YvesMuyaBenda
Copy link

Elixir for Programmers by Dave Thomas: https://pragdave.me/

@YvesMuyaBenda YvesMuyaBenda added the enhancement New feature or enhancement of existing functionality label Jul 22, 2017
@iteles
Copy link
Member

iteles commented Jul 22, 2017

@YvesMuyaBenda This is an interesting resource in that it's for programmers and is pretty clear about not explaining 'the basics' which I take to mean that there will be quite a bit of assumed knowledge and certainly won't be for 'beginners'.

It's also behind a paywall and costs $60 (at the time of writing), though I see there's a free trial.

Are you going to try out the free trial? Would be great to know more about this resource 😊
His talks are pretty interesting and his book on Elixir is great, so it might be worth it!

@YvesMuyaBenda
Copy link
Author

YvesMuyaBenda commented Jul 24, 2017

@iteles The problem is that I basically start writing novels in my mind in response to questions. I have been looking at the videos from the point of view of answering the following questions: (1) How much knowledge and experience does it presume? and (2) How does it compare with the free resources so as to justify the $60 (got it for $40) expense? (First of all what are the free video resources that teach Elixir, and do they go beyond the basic syntax/elements of the language to dive into project building and thought processes?) In the meantime, you might be interested to watch this video from 1:25 to 6:50, where he explains the origins of the online course in teaching relative beginners in his role as professor at SMU.

What most interested me enough to buy the course were the discussion of organizational and structuring concepts! My main guess is that I would find it more enjoyable and useful to observe a web-app being structured from the back-end to the front-end (he ends with adding Javascript on the front-end) within a clean functional programming language like Elixir, rather than start with the OOP languages like Ruby, Python, Javascript, where I would have to hold OOP concepts in mind (objects, classes (prototypes), methods, inheritance, polymorphism, encapsulation, lah-di-da) and then keep in mind the interaction of the OOP features with the functional aspects of the languages (anonymous functions, closures, higher-order functions, pure functions, immutable data, lah-di-da). Instead I could just think of data being transformed through pipelines and be happy! I found his talk of incremental building very intriguing, and thought it would be a useful way to intially structure my thought processes in an organized way.

If you have any other specific questions about the course, I will be more than happy to answer them as best I can. I should write something tomorrow or thereabouts.

@YvesMuyaBenda
Copy link
Author

@iteles Right, so I have gotten to the videos that talk about Phoenix, the "Getting Started with Phoneix" section, and yes, the course is really for developers, though it starts of really gentle and nice, but in particular web developers, for unless one has some idea of what work a web framework does, then it would be quite difficult to 'parse' the section. However, I suspect, that as a beginner, one never knows all that one needs to know upfront, so perhaps one of the basic skills might be 'back-filling'. For sure, it will not be the only source of information on these ideas I consult; but maybe the pacing will be enjoyable for the more experienced? I am now looking forward to seeing how Javascript is integrated on the front-end, thus giving me a complete, but rough and approximate, and gap-filled picture of an entire app. He introduces the concept of "plug" using the concept of 'reducer', stating that it basically a function taking state--connection with options--and returning new state--another connection. I think this is going to give me some ahas in the future!

Overall, at this point in time; I would summarise the concept as taking a simple console-based app--a simplified Hangman game--and running it through many concepts as one incrementally makes it a web-app.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or enhancement of existing functionality
Projects
None yet
Development

No branches or pull requests

2 participants