我的开发知识从一本谭浩强的《C语言的程序设计》开始,变量、函数、if判断/switch分支、while/for循环、流程图、自顶向下顺序执行逻辑等等知识。C语言之所以出名,因为诞生了世界了最伟大的操作系统UNIX/LINUX都是用C语言来写的。《C语言的程序设计》几乎是每个计算机专业入门级教材。后来在C语言基本上,发展出了一个增强版C++语言,可能用力过猛,搞得太复杂,C++使用率并不高。
一、回忆那些年感觉脑子不够用的几门专业课
数据结构与算法。尽管老师一再强调这门课程的重要性,一堂课下来真心搞明白的同学少的可怜。时间复杂度与空间复杂度是衡量算法好坏了的标准,“时间换空间,空间换时间”是算法的不变宗旨。数据结构:数组、链表、队列、栈、树、有向图、无向图等。算法:排序(选择、冒泡、快排)、二分查找、哈希、递归、最短路径、深度优先、广度优先等。写不出单反链表,搞不懂的“红黑树”,每个程序员都要认识一颗树叫“二叉树”,天天玩耍,将陪伴他们一生。
操作系统原理。一本专业书上面如果出现“原理”2字,基本都是难啃的对象。内核态、用户态、进程管理、内存管理、文件管理等。脑子里只剩下这些概念,其他知识已经遗忘干净。
数据库原理。什么是关系型数据库,面向对象数据库,内模式、外模式、笛卡尔积、各种范式。现在会设计表结构和会写sql、事务,其他知识已经遗忘干净。
网络原理。重点TCP/IP协议,曾经看完每个协议,感觉数据走了一遍长征。tcp四次握手,udp无连接,dns递归访问直到根服务器,http请求/响应等等。
汇编语言。学习汇编感觉自己丢了“半条命”,太难了!现在脑子里面只记得16位的寄存器AX,BX,CX,DX,高地址和低地址,段地址+偏移量访问这些概念。我曾经用汇编语言写过了1到100累加程序,花了几天时间都没有想明白汇编是到底怎么执行成功的。
如果我们想要变成技术大牛,就要对些基础知识补课,个人推荐“极客时间”app是付费的,专栏质量比较高,不仅有基础课,还有其他课,我已经使用1年多,收获很多。
二、我眼中的编程语言
既然聊的是开发话题,编程语言是重中之重,接下来聊一下我使用过的编程语言。
java。常年在TIOBE榜排名第一,曾经以为是可以抱“大腿”一辈子的语言,学习java走向人生颠峰。从人工智能发展的今天用java有些落伍,但历史上沉淀大量开源软件、社区、工具,java程序员依然是社会的刚需。那些年java火热,培训机构大街小巷满发广告,什么“北大青鸟”、“达内培训”等等,宣传讲述一个一个成功案例,让人颇为心动。java十三设计模式、反射、泛型等等,要精通java不是一件容易的事。我用java开发山寨版的运行在andriod的“门诊医生APP”(只有开处方功能)。
php。为web开发而生,LAMP是互联网界标配架构。有人戏称,php是世界上最好的编程语言之一。确实如此,php语法,相对来说比较简洁,开发服务端代码省事很多。有大量的成熟框架,如Laravel、thinkphp(国产)。我用php开发过“信息科管理系统”。
powerbuilder。简称pb,与它齐名的是delphi,都是windows桌面快速开发C/S的利器。pb最重要的是对“数据窗口”的应用,是pb这门语言的精髓。我用pb开发过“万能信息科”、“护士排班”、“门诊贴瓶单”等等程序。
python。语法简洁、优雅,写最少的代码,干最多的事。支持虚数计算、2的n次方运算永不报错、关键字最少、列表、元组、字典,还有大量机器学习深度学习的开源模块,不愧是AI时代首选语言。目前正在学习当中,准备用它来开发程序。
以“面向对象”思想设计的多门开发语言,其实都是一个“妈”生的,只是每个“孩子”各有绝技,其核心思想都一样(封装、继承、多态)。学习各种开发语言,相互对比可以加深对编程的理解,提高技术能力。
三、小白怎样开始开发HIT软件
编程的本质就是“翻译”,软件开发是把现实中的“业务”搬进“电脑”的过程。所以要懂业务,才能做好“翻译”。
首先,选一门开发语言。建议首先看你们医院his系统是用什么语言来开发的。如果用的是pb,就选pb,如果用的java,就选java,如果是delphi,就选delphi。这样做的目的,一方面可以用这种语言基于his来开发部分程序,一方面也可以处理his问题时更加容易找到错误原因。
其次,小白开发软件,建议从业务简单边缘系统需求开始做开发,比如“员工订餐系统”、“投诉管理系统”、“图书借阅系统”等等。这样做目的,第一方面业务简单,不用花太多时去理解业务,而是把精力专心放在代码上,后台表结构设计(毕竟是新手);第二方面,就算开发失败了,掌握一些实战经验,还可以申请采购一套相关系统,没有那么大压力。
最后,开发这活做多了就自然就熟能生巧,任何所谓的高手都是从小白成长起来的。相信各位医信小白,只要坚持不懈,不断学习,不断实践,一定可以创造出好的HIT软件,实现自己的人生价值。
冯火 2019-07-21
网友评论