lets_learn_algorithms

A repository of programming algorithms implemented in Go. This is meant to complement the "Let's Learn Algorithms" series at calhoun.io

  • 所有者: joncalhoun/lets_learn_algorithms
  • 平台:
  • 许可证:
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

Let's Learn Algorithms

Let's Learn Algorithms is an interactive blog/screencast series I am experimenting with to help new developers not only learn algorithms, but to also learn how they are implemented, and how to go from a and how to approach problem solving in general. I decided to go ahead with it after receiving positive feedback on reddit here - https://www.reddit.com/r/learnprogramming/comments/56aboa/i_can_understand_the_basic_algorithms_and_how/.

Lessons will likely be done weekly, but that could vary depending on my own schedule. Each lesson will focus on a single algorithm or topic, with the exception being when two algorithms are heavily related and there is a benefit in pairing the two together.

Each lesson will consist of the following pieces:

1. Introduction to the new algorithm

I start each lesson by explaining what the algorithm is, how it works, what it is useful for, and any other important details about the algorithm.

I am aiming to do this in both screencast and written blog format, but that may change over time. If you have a preference please reach out and let me know - jon@calhoun.io.

2. A walk-through showing how to implement the algorithm

I won't use any hand-waving or pseudo-code. I will actually write a working implementation of the algorithm so that you can see exactly how it could be implemented in your own code.

I strongly encourage that you code along (even if in another language) and then try to write the algorithm yourself a few days later without referencing my implementation. This will help make everything stick a little better.

3. Practice problems

On top of an implementation, I will also try to provide 2-3 practice problems that can be solved using the algorithm. I won't exactly say how, and many of these problems could be solved by other means, but I encourage you to try to use the algorithm you just learned to solve the problem.

And don't just solve it conceptually. Actually sit down and code a solution and verify that it works. I may not have a comprehensive test suite for each problem, but I will try to provide you with a few use cases that will help find bugs in your code.

That said, DO NOT rely on the test cases to ensure your code is correct. I suggest that you don't even look at which particular use case your code fails, and instead step back and think "What about my algorithm is fundamentally flawed?" or "What about my implementation differs from the algorithm I had envisioned?"

4. Review of practice problems

I will also post (possibly a week or two later) a follow-up video/article that covers how to solve every practice problem with real code so that you can reference it to verify your solutions, or to help you understand the solutions to problems you couldn't solve.

主要指标

概览
名称与所有者joncalhoun/lets_learn_algorithms
主编程语言Go
编程语言Go (语言数: 1)
平台
许可证
所有者活动
创建于2016-10-19 00:24:46
推送于2018-05-29 05:36:37
最后一次提交2016-11-28 15:10:16
发布数0
用户参与
星数94
关注者数13
派生数12
提交数13
已启用问题?
问题数0
打开的问题数0
拉请求数1
打开的拉请求数1
关闭的拉请求数0
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?