该怎样提高自主编程能力
弱渣讲讲个人经验吧。
首先要把基础打好,基本的语言功底、数据结构,要做的项目的一些基本知识最好要有(比如如果你想写一个简单的类 QQ 的即时通讯项目,那么网络编程的基础知识,目标平台的基本API、数据库相关的都要了解一点)。
【该怎样提高自主编程能力】 然后对于『做项目给我需求的时候根本不知道从哪里下手』,这一点,只能靠独立多做练手项目来锻炼能力。
我当初也是类似的情况,学了C++,看完APUE、UNP,想要自己实现一个简单的IM客户端+服务端,想要能实现QQ的基本功能,也就是注册、登录、私聊、群组、好友、离线消息等功能,却是不知道该怎么下手。
这个时候怎么办呢?在网上找一个IM 项目,跟着代码敲一遍?
不不不,不要这么做,虽然这样也可以锻炼自己的编程能力,但是对于提高自己的自主编程能力帮助很小。可以在网上找一找IM相关的架构解析文章(不要看提供的代码),看一看别人对于一个IM 项目的设计大概是什么样子,要有哪些功能,需要如何划分模块,模块逻辑应该怎样组织。
然后自己将自己设想的IM项目进行一个初步的设计,分出网络模块、注册模块、登录模块、用户信息模块等,在逻辑上确保这些模块能串起来,能够实现一个IM的基本功能。不需要多完善,重要的是自己要对自己想实现的IM有一个较为清晰的设计,知道代码上大体该怎样实现。
然后就开写吧。实实在在地自己开写。
在写的过程中,你会遇到很多很多实现上的问题,一些东西不知道该怎么实现,这会很纠结,很痛苦,很无奈,但是一定不要怂,一点一点来。一些设计如果没有好的解决方案那就先按按笨办法来,重要的是实际把模块写出来。实在想不出来就到网上搜一搜,看看别人的设计是什么样的,但是除非万不得已,否则不要遇到问题就直接上网看别人的代码。
在这个过程中,你会不断地发现自己的设计存在什么问题,为了完成/更好地完成一些功能,哪些大的架构必须要进行调整,你会不断地推倒重写,不断地调试,不断地优化,这会很耗时间(我当时花了两周的时间不断推倒重写、推倒重写,然后才终于定下一个勉强满意的架构),但是不要怂,这对于自己的实践能力真的很有帮助,你会对语言的特性更为了解,对调试更加得心应手,如果更深一步的话,对于性能测试、性能调优都可以进一步去探究。
项目/模块做得差不多了,你就可以审视一下自己的实现,和网上别人的设计、别的项目的实现有哪些区别,如果别人的更好那为什么别人这样设计,然后尝试将其实现在自己的项目中,然后该重构的重构,该推倒重写的推倒重写。
不要怕设计不好,也不要怕代码写的烂,这个阶段能写出来就是好的(当然写的时候最好还是对设计、代码质量带有一定追求去写)。这样的练手项目做几个出来,你就不会怂了,以后遇到新项目也知道该如何去分析,如何去设计,以及如何下手实现了。
■网友
还是写的少啊,正所谓看花容易绣花难。作为旁观者看待一件事情的时候,只能看个大概或者轮廓,但真的把它一点点做出来,就是从0开始,一个标签,一行代码,一个效果或动作,细枝末节。当然,也讲求顺序和方法。比如网页,结构,样式,行为。比如一个组件,需要它干什么,第一步,第二步,这样追溯,就能大概理出头绪。想法停留在脑子里是没法变成东西的,也没法帮助自己加深理解,还是多动手。
■网友
授人以鱼不如授人以渔
你想吃鱼了
鱼和渔就都有了
你不想
我给你鱼也好
教你渔也好
都是枉费心机
■网友
初学者都会遇到这个问题,一开始从模仿开始,多练习,满满就好了
■网友
这些现象,其实说明了,从某种程度上,不是“编程能力有待提升”,而是缺乏将需求(问题)转换成实际代码的能力。鉴于题主目前大二,那个人认为可能有这么些原因:
推荐阅读
- 『创业』自主创业每年最高可减免税收14400元 南京出台意见,多举措支持退役军人就业创业
- 汽车知识|甜美系女神爱上它的颜值,自主品牌中高端MPV代表荣威iMAX8
- 国内自主品牌|长安“欧尚X5”正式上市,尺寸比瑞虎8还大,价格比预售还便宜3千!
- dart这编程语言现在发展怎么样了,语法与Java,c#很相似,甚至更简洁
- 趣头条|盘点几款即将上市的“概念车”,引领自主高端新时尚
- 有点计算机基础的人想尽快找份编程的工作。哪种编程的工作最好找还需要学些啥
- 作为软件工程大二的学生,学习一般,编程一般,毕业后能干些啥
- 趣头条|"穷人"才买自主品牌?你们发现没,路上跑的红旗越来越多了
- 30岁的人生,想自学一门编程并从事,这个选择怎样呢
- 趣头条|自主版玛莎拉蒂?风行全新SUV造型惊艳,前后独悬,搭三菱动力