分享

软件是怎么编写的?要怎么学?

 山阳北宫 2018-05-26

我一毕业在导师的推荐下去了一家做芯片的公司,做了九个月发现实在不喜欢,转了JAVA开发,做了几年,工资比当时涨了六倍不止,也算是真正的喜欢软件编程!

首先,必须认识下软件的运行环境,软件都是运行在硬件上的,而硬件通常分为CPU,内存,硬盘等等,软件无论是进行数据存储,数学计算,数据分析都需要调动硬件单元,而硬件的操作都是通过电流(高低电平)进行控制的,在计算机设计伊始,就是用0代表低电平,1代表高电平,通过0,1组成的数据序列就能控制机器的运转,而这最底层的0,1就被称为机器码!
点此查看图片折叠原因

可是我们在平时编写源码的时候不可能就用0,1进行编程,所以出现了汇编语言(拥有许多指令集)来进行控制计算机,但是汇编语言需要接触硬件的同时,编写软件代码,还是不符合软件开发的需求,所以诞生了高级编程语言,如JAVA,C,C++等进行软件的开发,高级语言内部实现了对于汇编语言的调用,在编译器自动将源码编译为汇编语言,然后在运行时进一步解释为机器码进行执行,这样软件开发者就不需要关心硬件的处理,而专注于软件开发了!

回到正题,软件怎么编写?写软件就像搭建一栋建筑!(所以说码农这个词是有道理的)

1,砖石:对应软件中的代码,一个软件是通过不断的累积代码,按照某种特定的架构,实现某种功能的代码的集合,编写软件你不得不掌握至少一门编程语言,从语言的基本特性,思想,到API调用等都需要熟悉!

2,工具:对应软件中的IDE(集成开发环境),写软件可以用一个文本就从头写到尾,但是就像你用手堆起来一座楼一样,不敢想象。工欲善其事,必先利其器!好的IDE工具能让你的开发效率得到质的提升,就像eclipse,idea之于JAVA,无法取代的便利!

3,框架:无论是盖楼还是软件编程,不可能是一盘散沙乱堆,软件开发一般遵循软件架构,合理的设计软件的架构,能让代码的稳定性,可扩展性得到大大的提升!

4,周期:做任何事情肯定是有一定的周期性的,不然容易出现烂尾,软件也一样,编写软件之前通常会评估整个开发周期,以达到最快最高效的开发!

总之,一句话:编写软件就是准备一门语言,一个IDE,想好需要实现的功能,然后别怂,就是干!

当然,现在软件开发行业最火的就是大数据,人工智能,区块链等,选择你感兴趣的行业先学一门相关的语言(JAVA,python,go等等),然后不断的联系即可!

第二个问题,怎么学编程呢?原谅我的诗兴大发!

1,兴趣你得有:软件开发还是蛮枯燥的,如果没有强烈的兴趣,很难几十年如一日的做编程!

2,天天网上走:学习软件开发就像武侠中的功夫,需要坚持不懈的学习,每天都逛逛技术论坛,学习最新的技术和思想,掌握最新的开发技巧是很有必要的,比如说github,runoob,csdn,w3cschool等等,每天都去逛逛!

3,不嫌蚊子小:很多程序员可能一开始开发的时候并不能做自己擅长的,喜欢的,而更多的做一些业务代码开发,其实,技术全部都为了业务服务的,写好业务代码才能更好的体现自己的价值!

4,最终成大牛:以JAVA为例,除了掌握语言特性,基础类型和语法,面向对象思想外,常用的API,工作中常用的框架(对象管理spring,微服务开发springboot,数据操作mybatis,数据库连接池druid,高并发io多路复用netty),多线程技术,读写分离,分库分表(mycat,sharding-jdbc等),负载均衡(nginx),缓存(redis,memcache),消息中间件(kafka,ons等),日志处理框架(ELK),设计模式等等都应该掌握!

曾经我也对编程很迷茫,所幸经过努力走上了正轨,现在把我所学慢慢的分享,更多的技术,经验分享,敬请关注。。。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多