Coding is just a part of process of problem solving, You should need to understand the underlying problem and efficient solution within given constraint. So i will better tell you,how to be better at problem solving:

Programming Language & Computer science fundamental :-
 First
& foremost ,you should be proficient in any one of the popular
languages(C/C++/Java/Python), I will advise you to chose between c++ or
Java ,since both are widely accepted across all coding competitions and
have better resources to get yourself trained. Apart from knowing the
language
make sure you are pretty good in debugging and testing your own written code
with all the scenarios.

Resources:-
CS106A: Programming Methodologies (Stanford Java tutorial)
Eclipse And Java Video Tutorials
CodingBat Java (Elementary problem on java programming to kick start the things)
Coursera (C++ course )
Buy The C++ Programming Language (Bjarne Stroustrup)
Page on stanford.edu( CS101 course by stanford university for non cs students/beginner  computer science student)

Data Structure and Algorithm:-
You
can be a good programmer if you know a programming language well but to
become a great programmer you need to understand underlying data
structure and algorithm.

Resources:-
Introduction to Algorithms Book(CLRS) ,easy language,very detailed explanation about each and every algorithm technique(bible book :) )

The Art of Computer Programming: Fundamental Algorithms v. 1 Book

Data Structures and Algorithms Made Easy : Second Edition: Data Structure and Algorithmic Puzzles Book

YouTube Channel:-

mycodeschool

saurabhschool

Coursera(Algorithm course offered  by Stanford university)

Do's:-
1. Try to implement every solution on paper first before starting the code
2.
Analyze the problem, define the constraint , compare your own solution
with the parameter of  time/space complexities  and then start coding
(It may be hard to do at first but it will surely make you a better
programmer)

At this point of time you would be pretty confident
enough to imagine ,which technique shall i follow or which algorithm
shall i utilize to solve a particular problem, Now it's Practice Time!!!
1. Start solving problem on Sphere Online Judge (SPOJ) ,200 problems
2. Once you finish step 1, try topcoder problems for DP and other algorithmic techniques ( solve around 300 div2 or div1 ,until you feel confident in yourself)
3(Optional) If you are looking for interview preparation ,Start solving problems from
Cracking the Coding Interview: 150 Programming Questions and Solutions
GeeksforGeeks - A computer science portal for geeks

Bottom Line:- It's not the  only "The"
way to achieve a good programming mindset but it's a better way that
helped me to equip myself with better programming knowledge.

quora 的东西就是不一样的更多相关文章

  1. Quora的技术探索(转)

    原文:http://www.cnblogs.com/xiekeli/archive/2012/04/27/2473808.html 关于问答类的应用,最早接触的是stackoverflow和知乎 ,而 ...

  2. Quora 用了哪些技术(转)

    原文:http://dbanotes.net/arch/quora_tech.html 很多团队都在学习.研究 Quora .前段时间看到这篇 Quora’s Technology Examined  ...

  3. quora 中有关angular与emberjs的精彩辩论

    原贴地址,要注册才能看,这里只有国人翻译的一部分内容 本文源自于Quora网站的一个问题,作者称最近一直在为一个新的Rails项目寻找一个JavaScript框架,通过筛选,最终纠结于Angular. ...

  4. Quora使用到的技术

    本文主要参考了Phil Whelan的这篇文章<Quora’s Technology Examined>.关于Quora是个什么网站我就不多说了,国内对他的C2C网站叫“知乎”.呵呵.我们 ...

  5. Quora的技术探索

    关于问答类的应用,最早接触的是stackoverflow和知乎 ,而Quora作为知乎的原型,因为其创始人来自FaceBook而吸引了我.事实上关于Quora的技术分析,冯大辉和陈皓都已经有所详细的阐 ...

  6. 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)

    前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...

  7. iOS有关横向TableView的东西

    之前看到Apple store里面有横向的tableview,当然也有可能是collectionview啦. 尤其是项目中只有一条那么需要横向滑动的东西,就没有必要使用庞大的collectionvie ...

  8. 使用ENode框架前您需要了解的东西(初稿)

    选择ENode意味着什么可能很多人还不太清楚.我简单整理了一下: 意味着你选择了:你需要做DDD领域建模.选择了事件驱动的架构.选择了CQRS架构.选择了最终一致性.选择了事件溯源.选择了分布式.这些 ...

  9. CI Weekly #7 | Instgram/Quora 等大公司如何做持续部署?

    终于,你们期待的 flow.ci iOS 项目持续集成 开始公测了.在这几个工作日, flow.ci 做了些许「功能优化」与「问题修复」,性能和体验都在持续优化中.比如: iOS 快速入门文档更新: ...

随机推荐

  1. cxf配置

    先记录一下,后期补充配置原因 原先的spring3.X(struts2)的时候配置cxf2.x没问题,基本就是在context.xml中加入 <import resource="cla ...

  2. GO数据类型

    基本数据类型 Go语言中有丰富的数据类型,除了基本的整型.浮点型.布尔型.字符串外,还有数组.切片.结构体.函数.map.通道(channel)等. 整形 获取对象的长度的内建len()函数返回的长度 ...

  3. Python 协程并发爬虫网页

    简单爬虫实例: 功能:通过urllib.request实现网站爬虫,捕获网站内容. from urllib import request def f(url): print("GET:%s& ...

  4. Python 协程实现socket并发

    socket多并发 socket可以实现单个客户端进行请求访问,它可以通过socketserver来实现并发功能呢,socketserver是通过启用多线程实现并发,在这里我们也可以通过gevent协 ...

  5. hadoop+kerberos常用运维命令

    kerberos相关: kadmin.local //以超管身份进入kadmin kadmin //进入kadmin模式,需输入密码 kdb5_util create -r JENKIN.COM -s ...

  6. 【Python61--异常处理】

    一.URLrror 当我们的urlopen无法处理一个响应的时候就会出现一个urlerror的错误,但同时url会伴随一个res的属性,包含一个由错误编码和错误信息url 举例: import url ...

  7. 缓存算法(FIFO 、LRU、LFU三种算法的区别)

    FIFO算法 FIFO 算法是一种比较容易实现的算法.它的思想是先进先出(FIFO,队列),这是最简单.最公平的一种思想,即如果一个数据是最先进入的,那么可以认为在将来它被访问的可能性很小.空间满的时 ...

  8. pip安装第三方库镜像源选择

    在pip安装时,有些库速度及其缓慢从而导致失败,可以通过更改镜像源的方式来安装. 我在安装的时候使用了清华的镜像源,格式如下: 想要安装什么库就在后面替换即可.

  9. 进程池 和 multiprocessing.Pool模块

    进程池的概念 在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务.那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创建进程需要消耗时间,销毁 ...

  10. Windows环境——MySQL安装及配置

    Mysql安装 下载地址:https://dev.mysql.com/downloads/mysql/ 根据个人需求,选择对应的操作系统,进行安装,本次安装的版本为5.7.24版本. 1.  安装完成 ...