软件开发 零基础学习软件开发要学习多久??

原标题:零基础想自学软件开发,可行吗?

零基础想自学软件开发,可行吗??从零开始学编程到高薪就业的工程师的建议:

首先,明确一下,编程语言就是一工具,语言是语言,算法是算法,同一种数据结构和算法,基本任何语言都可以实现。语言是用来干什么的?就是用来和计算机打交道的,就像你跟美国人说话用英语,跟日本人说话用日语一样,跟计算机说话需要用一种他能听懂的语言。其实计算机只明白0-1字节码,也就是机器语言,但是这玩意太难了吧,人类哪记得住?于是就有了汇编语言,经过编译可以变成机器语言,但是学过汇编的都知道,一条一条的指令,实在麻烦。所以才诞生的很多高级语言。高级语言非常接近我们的自然语言,所以我们可以很容易地使用它。就像我们平时接触的VB,C/C++,Java,Python,C#,Scala,Pascal,Lisp,Java,Swift……不胜枚举,不同语言干不同的活,可以说各司其职,就像R用来数据分析,Java用来写前端,C用来写嵌入式,Swift开发IOS,当然有的可以干好多事,像C#,C++,Python,Java这种,我们首先应该选择一个方向,比如我们对哪一块感兴趣,然后再去进行语言的选择。当然,入门无所谓,学C就可以,语言都是相通的,主要理解思想。

其次,一旦选择好一个方向,比如Java,就要了解整个脉络,了解这个体系。我觉得学什么东西都应该有章法可循,成体系,知前后,懂因果,由浅入深,循序渐进。无体系地学习,就像没有图纸建房,东拼西凑,毫无章法可寻,只知皮毛,而首尾不能相接。我们应该知道整个前进的方向,亦或整个知识的体系架构,让自己有章可循,不至于仿佛跌入茫茫大漠,无可辨向。比如第一步,我要学习基础语法,什么是变量,判断,循环,常用数据结构。然后就是API了,我要学习怎么和硬盘交互,文件IO,怎么和网络交互,socket通信,怎么用多线程多进程,怎么用数据库,怎么用xml,怎么发送http等等。接下来你要考虑我是走web这条路,还是去学Android,还是学大数据?比方确定web,你要学前端,html,css,js,学一些常用框架,jquery,bootstrap,Ajax交互。接下来学servlet,jsp,这是java自带的服务器编程组件,学完就能做网站了。但是企业还会用框架,所以学学spring boot,spring mvc,spring框架,mybatis,struts2什么的,总之很多,像mvc学一两种即可,orm也是,重在了解思想,这样就大概了解了脉络。

最后,一定要练习练习练习。学基础的时候多敲代码,做一些小例子,不要怕麻烦,常用API用熟练。以后多做项目,在做项目的过程中会学习很多。可以去github上面下载自己感兴趣的代码,看看别人怎么写的,照猫画虎。还可以自己做一些小东西。做的多了,就要看源码,多买一些比较深的书,像spring原理,Java并发编程,effective c++,设计模式,jvm虚拟机这样的书去啃。

2,然后学基本的数据结构与算法,链表、二叉树、排序、Hash、红黑树,

3,然后学汇编,基本能看懂gcc -S出来的汇编文件,

4,然后学Linux环境下的C编程,参考书“Unix环境高阶编程”、“Unix网络编程”,涉及进程管理、内存管理、文件系统、网络编程、Epoll异步事件机制等,

C语言、数据结构和算法、OS,这三项的基础知识学习就到此为止了,

5,学C++,不需要精通,也精通不了,会C With Class式的C++就行,了解OOP的思想,会用STL里的常用容器,

6,数据库,会写简单的SQL语句,会简单的安装使用Mysql,

到这里,整个编程的基础知识就学完了,下面可以选方向了:

1,web前端,去学JS,HTML等,我不大了解前端,不多说,

2,Web后台,技术栈较多,C++、Java、Node JS、Go、Python,不同企业用的不一样,看你自己爱好选一种语言,

但要懂OS和数据库,数据库一般要会Mysql和Redis,会一种该语言下的Web框架,

4,IOS,学OC、Swift等,我不大了解,不多说,

5,嵌入式,必须学习Linux内核,参考书“深入Linux内核架构”、“Linux设备驱动程序”,

最好对数字电路有一定了解,会用示波器,有利于和硬件工程师沟通,

6,流媒体音视频,FFMPEG基本包含了所需的几乎全部知识,要了解HTTP、HLS、RTMP、FLV、TS,H264、AAC,FFMPEG里都有,

参考书霍恩的“机器视觉”,Tensorflow的官方文档,“神经网络原理”等,

最好懂NEON、CUDA,做性能优化时可能用到,

8,NLP,不大了解,但也要会用Tensorflow,参考书“离散时间语音信号处理”,

9,大数据,Hadoop、Scala等,不大了解,

11,在一些大公司里,C++服务器编程(视频云、CDN),或者本身就是搞通讯设备的(华为、中兴),需要了解Linux内核的网络协议栈,了解Netfilter机制,小公司一般不搞这个.

零基础想自学软件开发,可行吗?

在国内,要“会学”有多难?

没有目标?没关系。这里有无数有着坚定目标的同路人,被他们的前进的步伐裹挟着的你,原地踏步就代表着退步,进步从来都是不由自主的。

没有系统专业的学习资源?疯狂软件教育中心专注高级软件编程,以“十年磨一剑”的心态打造全中国最强(不是之一)疯狂Java学习体系:包括疯狂Java体系原创图书,疯狂Java学习路线图,这些深厚的知识沉淀已被大量高校、培训机构奉为经典。

专业名词太多?没有人指点?疯狂软件教育的老师会全天候指导和随班陪学,即使毕业工作后也提供远程技术指导。疯狂软件教育中心师资阵容强大,由国内著名疯狂Java体系书籍作者李刚老师担纲首席讲师,疯狂Java精英讲师团队肖文吉、罗文强、罗春龙、徐磊、黄勇等老师现场授课。还有大量具有丰富实战经验的老师同台授课。

最新数据显示,小程序上线数已经达到了近150万个,App Store曾经做了10年的APP数量被微信用了1年半多的时间赶超,可以说,小程序时代已经来临,但身为零基础的技术小白,也想拥有自己的一个小程序怎么办?下面和大家分享下零基础如何10分钟开发出自己的小程序

首先百度搜索牛刀云(开发类工具平台很多,这里仅以牛刀云为例,不在详细列举,看各位喜好)

1 打开官网,微信扫码登录

在这个页面选择自己想要做的小程序模板,模板基本涵盖了衣、食、住、行等各行各业(商城,酒店,家政,家装类等等),可以直接找到自己想要的模板点击“使用”按钮,在使用前还可以进行预览。

下面进入制作台编辑页面

方框1为组件市场,可以从里面选择你想要的功能以及按钮;

方框2里面可以更改视觉设计,可以更改按钮大颜色,大小等等;

方框3大家都看的比较清楚,是预览页面,真正的做到了所见即所得;

方框4处的“数据”里面用来上传自己的后台数据。

点击上步骤中提到的“数据”按钮,可以看到左侧边栏的详细分类,特别清晰,比如:轮播图,banner信息,优惠券等,都可以直接在这里上传。功能还是比较全面。

当信息都填写差不多后,点击右上角的“预览”按钮,即可在电脑端或者扫码在手机预览到自己小程序的样子(防止有广告嫌疑,二维码已模糊处理)

当自己的小程序做到自己满意后,点击“发布”,下载小程序包,上传到微信开发工具审核即可(具体上传,审核步骤可以查看腾讯官方文档)

总结:以上就是10分钟搞定小程序教程,全程无代码,傻瓜式操作,零基础小白也能轻松开发自己的小程序了。

  零基础还是软件开发好?相信这是很多人都纠结的问题。如果是零基础,建议学习软件测试,开发测试不能说哪个更好,只是测试上手更容易些,同时也能更熟悉软件。如果是对软件开发感兴趣,建议还是报个班系统地进行学习。

  软件开发和软件测试是两个不同方向的工作,软件测试主要为软件开发做服务。主要就要看你的发展方向了。软件开发主要倾向于对技术有要求,对技术有爱好,需要比较强的逻辑思维能力、理解能力。

  而软件测试,主要就是软件测试的经验,以及对不同程序的快速理解能力。还有更重要的一个就是细心,当然一个好的软件测试工程师,也必须要有相当的软件开发(编程)的能力来支撑。

  目前来说,由于大家对软件测试工作的误解,导致很多人盲目的追随潮流,投身软件开发,也不考虑自身情况到底适合什么样的工作。错误地理解成为软件测试没有软件开发牛,所以导致了软件测试人才的缺少,目前软件测试的人才还是相当吃香的。

  另外就是中国的软件测试人员极缺。在未来几年内,中国的软件测试人员是功不应求的。但是软件测试人员是杂家,开发人员是专家。个人认为做测试比较轻松一点,但知识面要非常广。

  而且软件测试人员不像开发人员,懂一门技术就可以了。不管怎样,先打好基础,以后不管做什么都可以。所以,如果还是初学者,没必要考虑这个问题。做哪个都是以扎实的技术为基础的。

  培训的实战项目全部基于云服务器真实上线,实战项目不仅仅使用商业框架完成,培养具有架构级思想的工程师,具备处理百万级甚至是千万级高并发业务处理能力。学员每天至少花半个小时进行自我表达训练,一个合格的软件测试工程师必须具备沟通以及演讲技术的能力,一对一面试指导,发现学员面试中的问题并解决,保证高薪就业。

我要回帖

更多关于 零基础学习软件开发 的文章

 

随机推荐