10 Tips to Improve Programming Skill and become better Programmer, Developer

OpenCV形状检测 开始定义我们的ShapeDetector类。我们将跳过这里的init构造函数,因为不需要初始化任何东西。#导入必要的包importcv2classShapeDetector#初始化形状名称并近似轮廓shape="unidentified"peri=cv2.arcLength(c,True)approx=cv2.approxPolyDP(c,0.04*peri,True)我们的检测方法,它只需要一个参数c,即我们试图识别的形状的轮廓。... 阅读详情
Many Java developers ask me How to become better programmer, how do I improve my programming skills, or I am good at Java but not so good on problem solving skill etc. This is reality, today's era is full of language expert than real programmers. It's easy to understand keywords, methods and API of Java programming language, but same time it's difficult to solve a real problems, design reusable and robust software and get maximum of data structure and algorithm. I have often seen Java programmers not doing so well when asked to design and code a solution in limited time, but same time they are really good withJava concepts and all theory. Even senior programmers of 4 to 6 years experience in Java programming, sometime fail to solvequestions like designing coffee-maker, coding Vending Machine or sometime evenrecursively reversing a linked list. I may be just moving off from becoming better programmer, but it's important to know your limitation and then work out to resolve those. If you feel resistance in coding, then you should code as much as possible, if you feel stressed and lost in designing using Object oriented analysis and design, then you should do designing using pen and paper as much as possible. This resistance is what actually preventing you from being a better programmer. I have personally found that coding and designing presents lot of resistance to an average programmer, because in most of them in their professional job don't do enough coding and development. By the way, there could be numerous tips to become better programmer, I will stick with my list, which I personally follow and which has continuously helped me.



10 Tips to Improve Programming Skill and Become Better Programmer

How to become better programmer
In order to become a better programmer, you need to be really good at data structure, algorithms, designing using OOPS, multi-threading and various programming concept e.g.recursion, divide and conquer, prototyping, and unit testing. Programming is a combination of many skills, which means it's not possible to learn it in quick time, rather it will come with time and experience, but that won't happen automatically. You can spend 5 years doing a Java programming job, without being a good programmer. Since most of Java interviews focus on theory rather than programming and coding skills. Not many programmers practice these essential programming skills. If there is a mandatory problem solving programming test, I would bet, average programmer would have been much better. Any way, here is my list of things, which can help you to become a good programmer.


1) Coding, Coding and Coding
Why I have coding at top of this list? because it's difficult and same time it's central piece of programming. By doing coding, you also realize your mistakes indesigning, error handling, threading and then go back to those respective skill to improve. You just cannot work in designing only, coding produce output, which is important to learn and act as success. By the way, do not stop just after solving the problem, it's always better to throw away your first solution, that is just a prototype, your next solution should address issues, missing requirements which you have found building prototype.


2) Reading Books
Coding is easier said than done, and there is huge difference between good code and bad code, but how do you know? Until you have seen a good code, and know why a particular code is good, you can not understand difference. This is where books comes to help, more often than not authors are great programmers themselves. They offers their experience in form of book. Ilove books, but one book, which is particularly helped me isClean Code by Uncle Bob. By reading this book, I have found myself finding problems in my code and applying advice given in this book every now and then. My advice is if you ever find such books, grab them. I also recommend reading this classic books many times, and refer them every now and then. Another similar book is Effective Java by Joshua Bloch, which is full of good advise. It's also from of my list of  must read books for Java programmer. Also, by reading books you are learning from someone else's experience, and there is only two ways to improve yourself, either bylearning from own experience (which is very limited) or learning from others experience (which is unlimited). Remember more is not always good, rather than reading 5 books, I suggest read two book, which you enjoyed reading multiple times.


3) Contributing to Open Source, Signing-up mailing lists
Contributing on Open source code, especially from Apache, Google and some other projects is another way to improve your programming skill and become a better programmer. Just signing there mailing list and following discussion teaches you a lot. Since most of discussions happens between good programmers, by listening them and understanding problem and their approach, solution and view, automatically develop good programming habits on you. To get most of it, do not just sit passive, ask questions, offer your view, but same time value others as well.


4) Practising data structure, Algorithms and Design related problems
I was thinking to put that as second item, but it ended up fourth. In my opinion this is the most critical of things to do to become a better programmer. Most of good programmers I have seen and met are really good in data structures, algorithms and basics. By learning these things, you take better advantage of what is available. Since data structure is key piece of any programme, solid knowledge of them helps during problem solving. Similarly knowledge of key programming principles, search and sort algorithms and other well know algorithms develop programming skills on you.


5) Reading Good Blogs
Reading good blogs is a small part of reading books. How does reading blogs helps you to become better programmer? Well it does. Since blogs are often written by programmer themselves and most of them share there personal view, experience, you often find them relevant. Also blogs  are small  piece of information so it digests well. Blog also help to learn new technology and new features of existing language and API. Many times, I have seen something subtle, or missed things from a really well known part of Java described in a small blog post.


6) Reading Code
If reading blogs helps to become good programmer, than reading code help more than that, but same time reading blog is easy but reading code is tough. Do you see resistance? then you should do it. Look code of open source projects, your fellow programmers code, your existing proprietary code, code from Java SDK and try to understand how they work, try to see what they are doing and why they are doing. Find patterns, develop navigation skill, initially you will find it boring and difficult, but with time you will develop a good code sense, which will alert you when you do mistake, help you to spot others mistake, gaps and code smell. This Code sense is one of the sign of better programmer, they often tend to look, what you missed.


7) Writing Unit test
Unit test complement thinking and coding process, and subsequently helps you to design better. Anything which is difficult to test has chance of improvement. Alsowriting unit test helps a lot in finding better names, better abstraction, better interface and abstract class design and overall improves code quality. But like coding and designing, unit testing is also tough job for average programmers, you will see lot of resistance there. Some programmer writes trivial test, instead of thinking hard on usage scenario. Remember there is no substitute of think through process, after analysis, design and development, unit testing is another opportunity to think through scenarios and gaps in your code. Make it a rule, always write Unit test for your code.


8) Doing Code review
Like Unit testing, Code review is another thing which help to become a good solid programmer. Code review help both reviewer and author, reviewer improves his code sense and offer genuine advice, while author learn from his mistakes. It often helps that the code you think is rock solid, has some bugs which only other programmer can see,Code review and four eye check does that for you. If you are lucky and get a chance to work in a company which has unit testing, code review as discipline then you are likely to be  better programmer than rest. These two things immensely help to improve programming skill.


9) Talking to fellow programmer
Reading is passive event compared to talking. Talking a program and discussing that with fellow programmer, often leads in better solution, it's natural because your mind tends to involve more, whey you talk and listen to other. I have then found gaps, missing requirements, bugs and design flaws while discussing with team mates. In software industry, where programmers tends to isolate them with there computer, talking, sharing and doing white board sessions helps immensely.Don't just sit and code, talk, listen and think and hangout with fellow programmers. participating on event also helps.


10) Participating Stack Overflow and forums, Commenting in Blogs
This is another form of activity, which helps to revise knowledge. By sharing knowledge, first person who benefits is the one who share. Since programming is big and vast, you tend to forget most of things which you don't use for more than 3 months. Participating in StackOverflow and answering others queries, commenting on blogs and forums is a nice little way to revise knowledge and same time correct your misconception. By putting our knowledge in front of others, we not only helps others but also put them into test. Many times you will see, someone benefiting from your knowledge but also you are getting your misconception corrected.


Every programmer wants to become better programmer, but not every one succeeds. Apart from natural talent of programming and problem solving, it requires lot of hard work, constant learning and perseverance to become a better programmer. The more you do real work e.g. Coding, Designing,Unit Testing andCode review, the more better you will become. If you just want to do one thing at this moment, I would say go and read clean code.


Read more: http://javarevisited.blogspot.com/2014/01/10-tips-to-improve-programming-skill-become-better-programmer.html#ixzz3BOesOI9T

8.23拼多多笔试真题-护栏补强(C++/Py/Java /Js/Go) 拼多多笔试 8月23号真题,拼多多笔试第二题【护栏补强】,提供详细思路讲解以及Java、C++、Python、Go、JavaScript多语言代码实现。拼多多技术岗笔试真题【护栏补强】多语言题解。 阅读详情

相关推荐

STM32G0/G4无刷电机硬件设计与FOC控制实现

无刷直流电机(BLDC)和永磁同步电机(PMSM)的矢量控制依赖于高精度电流采样、实时SVPWM调制与闭环PI调节等核心技术。其底层实现需兼顾电机本体建模、坐标变换(Clark/Park)、死区补偿及硬件资源约束。STM32G0系列凭借CORDIC协处理器与超低功耗特性,适用于成本敏感型有感FOC应用;而STM32G4集成运放、FMAC滤波器与高级定时器,可支撑高性能无感控制与多源传感融合。该技术广泛应用于机器人关节、智能云台、伺服驱动等场景,是嵌入式电机控制工程师必须掌握的工程化落地能力。

weixin_35751412的博客 84

Advice on improving your programming skills

Programming is cool. But behind the scenes it's also difficult for many people. Many people are defeated at the early stage of learning programming. When you are not so familiar with programming, you

1128

stable-diffusion-webui的逐步部署教程

本文主要介绍了stable-diffusion-webui的逐步部署教程,希望能对使用Stable Diffusion的同学们有所帮助。 文章目录 1. 前言 2. 逐步部署教程 2.1 创建Python环境 2.2 安装依赖库 2.3 运行代码

weixin_43178406的博客 6万+

提高编程技能最有效的方法

<br /><br />StackExchange.com上有两个贴子(贴子一,贴子二),贴子名叫“What is the single most effective thing you did to improve your programming skills?” – 对你的编程技术提高最有效的一件事是什么?回复的人中给了很多很不错的建议,我把他们总结了一下,十条,相信一定会对你有用。(注意:顺序是我自己按我的个人经验排的)和比自己聪明的能力比自己强的人工作。学习他们的代码,他们的做事方法,看一看那些人

zhjp4295216的专栏 587

To improve your programming skills

ten tips from http://www.antoarts.com/10-ways-to-improve-your-programming-skills/?utm_medium=referral&utm_source=pulsenews 1. Learn a new programming language    the ways of thinking 2. Read a g

beyond 837

10 ways to improve your programming skills

http://rudyn.is-programmer.com/ 1.Learnanewprogramminglanguage学习一门新的编程语言 Learningnewprogramminglanguageswillexposeyoutonewwaysofthinking;especiallyifthenewlanguageusesa...

weixin_33804990的博客 286

How to improve programming skills

第一阶段:我觉得我们应该了解一下几种常用语言(选一种你自己喜欢的了解就行)的基本语法和规则。然后可以开始学学算法。 第二阶段:可以回过头来进一步深入学习某种语言的技巧,目的是更好的把算法融入其中。用更简洁漂亮的语言来实现算法。这个阶段可以看一些大步头的“名著”程序。比如可以分析分析Linux的代码。个人认为学编程跟学写作是一样的,要想写出好文章,就得博览群书啊!!而我 们现在要博...

sotlcs的专栏 217

The Key To Accelerating Your Coding Skills

原文出自:http://blog.thefirehoseproject.com/posts/learn-to-code-and-be-self-reliant/ When you learn to code, there is a moment when everything begins to change. At Firehose, we like to call this the i...

黎先生的博客 1841

Java开源在线考试系统怎么选?从技术选型到落地部署的完整指南

Java开源在线考试系统怎么选?本文从技术选型、核心功能、部署运维、二次开发等维度,梳理了Java开源在线考试系统的选型要点。

麦塔在线考试培训系统 341

大数据 之 Snappy

【代码】大数据 之 Snappy。

zhixingheyi_tian的博客 171

41面向对象(高级)-抽象类

当父类的某些方法,需要声明,但是又不确定如何实现时,可以将其声明为抽象方法,那么这个类就是抽象类。

weixin_52770734的博客 354

商超智能运营如何落地?从系统架构到实战避坑的完整技术路径

3. **多端交互展示层**:需覆盖顾客使用的**小程序、APP及H5公众号**,以及员工使用的管理后台。答:在应用层引入**适配器模式**。在项目启动时,应强制要求供应商或自研团队产出**部署文档**(含环境变量清单)和**二次开发文档**(含核心流程时序图),确保后续维护不受限于个人。- **多租户插件**:MyBatis Plus的`TenantLineInnerInterceptor`可实现SQL层面的自动拼接`store_id`条件,防止开发者因SQL编写疏漏导致的数据越权。

weixin_56812938的博客 413

【手搓 Agent 第2.3关】搭建 Agent 进阶能力:工具注册中心架构重构

本篇优化了之前编写 Agent 时的杂乱硬编码,使用工具注册中心统一调度,促使后期增添工具更加容易。顺便优化了 RAG 知识库的懒加载,使 Agent 启动更快。

2502_92964924的博客 333

Java深入解析篇二十之JavaStream API详解

Stream(流)是引入的数据处理抽象,位于包。它表示从数据源产生的元素序列,并支持对其进行函数式、聚合式操作。不是集合:流不存储数据,只描述对数据的计算;不是 IO 流:与无关;惰性管道:中间操作只是登记,终端操作才触发实际计算。// 命令式写法(对照) // List<String> r = new ArrayList<>();

萧瑟余晖的博客 345

电商推返模式的技术架构与系统落地实践

成功的电商推返模式系统,本质是。

weixin_42804741的博客 188

RocketMQ订单事务消息实战教学

用户下单要同时扣库存、扣余额、加积分,拆成 MQ 异步履约后,原子性、重复投递、部分成功三大难题怎么破?本文用一个真实可跑的下单案例,讲透 RocketMQ 事务消息(half 消息/本地事务/回查)、三层幂等防线(Redis SETNX + DB 唯一索引 + ▎ 条件更新)、业务失败与消费失败的区分处理、按状态补偿的 Saga 关单逆向流程,以及死信工单 + 人工重放的完整闭环。全量代码含 import、pom 依赖、建表 SQL,附三条可演示链路、生产落地清单与面试题速答,跟着做即可复现。

zhenyu333的博客 259

MYBATIS=PLUS批量插入数据提效

**原因**:如果开启事务,`saveBatch` 在执行完 `flush` 后,Spring 并不会立即提交事务,而是等待方法结束才 `commit`。- **优化**:如果业务允许部分失败(或无需强事务),**去掉**该方法上的 `@Transactional`,让 `saveBatch` 内部自动提交;* **优化建议**:如果业务允许,**去掉方法上的 `@Transactional`**,让 `saveBatch` 利用自动提交模式,或者使用编程式事务来精确控制边界。

datalover的专栏 376

C++ 理解 std::thread 在单核和多核上的行为差异

std::thread 本身的行为在单核和多核上是完全一致的——它都是创建操作系统级别的线程,由操作系统调度器负责分配CPU时间。真正的差异在于操作系统的调度策略以及硬件并行能力。 形象地说: 单核CPU = 一个人(一个核心)同时只能做一件事,但可以在多任务之间快速切换(时间片轮转)。 多核CPU = 多个人(多个核心)可以真正同时做不同的事。

q610098308的专栏 263

Linux软件编程学习笔记(六)——线程间通信

同一个进程中的多个线程共享进程的地址空间,因此线程之间可以通过共享变量、共享内存区域等方式交换数据。进程│↓ ↓线程A 线程B│ │└──────→ 共享变量 ←───┘num = 200;这就是最简单的线程间通信。共享数据并不等于线程安全。如果多个线程同时操作共享数据,就可能产生竞态条件。因此线程间通信通常需要结合:互斥锁条件变量信号量读写锁消息队列等机制线程间通信│├── 共享变量│├── 互斥锁│ └── 保护共享资源│├── 条件变量│ └── 等待/通知。

weixin_56431759的博客 187

k8s infiniband 和 RoCE(RDMA over Converged Ethernet)

vendors 为设备厂商编号,注意这里不是 ibv_devinfo 命令看到的vendor_id 的值,而是 lspci -n |grep “网卡的bdf” 得到的。如上文所述,启动了两个测试 pod ,登录其中一个 pod(该 pod roce 设备 ip 为 10.56.217.79)如上文所述,启动了两个测试 pod ,登录其中一个 pod(该 pod ip 为 10.96.225.24)说明:文中用到的镜像是自定义的,文末有其Dockerfile 文件。修改该文件,增加污点容忍的内容,如下。

weixin_40548182的博客 1756

cad计算面积插件_CAD插件_cad计算面积插件_aream.lsp_cad计算插件_aream_

使用方法:点击 autocad 菜单 “工具” “加载应用程序”(或者在命令栏输入appload指令) ,加载 aream.lsp,另外附赠面积累计插件,加载方法一样

下一篇: Java中获取键盘输入值的三种方法
xiamiaoo
博客等级 码龄14年 0粉丝 1原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值