[IT技术] 软件开发需要学习哪些技术 ?

[复制链接]
janbo 发表于 2024-1-7 00:28:19|来自:中国 | 显示全部楼层 |阅读模式
软件开发需要学习哪些技术 ?
全部回复5 显示全部楼层
散步人生 发表于 2024-1-7 00:28:33|来自:中国 | 显示全部楼层
学习路线,学习速度因人而异,按照自己实际情况进行,我只是讲一下自己的实际情况,希望给一些同学带来一点点帮助。
目录如下:
C++基础语法 & STL
数据结构与算法
计算机网络 操作系统 数据库(MySQL Redis)
Linux
一点点Go
项目
编程语言选择

C++基础语法 & STL

书籍

我自己的话是先看了C++ primer的前16章节的内容,大概用了两个多月(这段时间还看了B站王卓老师的数据结构相关的课程)。
每一节后面有一些练习题,大部分没有手敲出来,有一个思路就对照答案看看。
最开始的时候看了很多很多学习路线帖子,推荐的书籍大差不差:C++ primer,侯捷老师翻译的四件套(effective ,more effective,深度探索, STL源码剖析)。
但是! 感觉自己过于浮躁,只完整看了一本effective C++
平常查一些STL的内容是cppreference
还有一本比较硬核的书是《程序员的自我修养》,非常牛的书,事无巨细地讲解了代码如何一步步变成进程跑在操作系统上。
视频

我只看了侯捷老师的视频课,受用很多,认真看了书之后,视频刷的很快。
老师的课程分为很多部分,我选着看了,C++面向对象高级开发(上下),STL标准库和泛型编程。内存管理和C++11&14时间充裕的话也可以看一些。
数据结构与算法

书籍

只买了一本大话数据结构,内容没有那么死板,对每种数据结构的特点有清晰的认知就ok。
视频学习&刷题

首推!y总AcWing的课程,Carl的代码随想录,Codetop的题单,剑指offer
我自己最开始的话,先刷了一遍剑指offer,一遍Carl的代码随想录,这是最折磨的时光,半天A不了一题,感觉自己脑子太费劲了,直到有一天在哪看到有人在吹y总,很好奇是谁,后来找到了AcWing。
大佬有一句话大概意思是“我们不是要创造算法,而是会用这些前人已经写好了的优秀的算法,会用就已经打败很多人了”,太对了!
从那以后,十分钟不会的题目,就开始看题解(当然!题解看半天也是常有的事情....)
我写了一共444道LeetCode,大部分简单题中等题,部分常见的困难题,面试手撕感觉问题不是很大(当然我没面过几家大厂)。
我基本上刷了六七遍剑指offer(一天码完剑指offer的70多道题不是问题),两遍代码随想录,一遍Hot100,Codetop上的一点点题,牛客的面试必刷101的一点点题。
笔试题的话,我没特意准备过,但是明显感觉到题还是刷少了,做的挺差的。


给大家的建议就是早点开始刷题,到后面找实习、秋招啥的可能都没心情写了(或许只有我是这样的,hhh)。
计算机网络 操作系统 数据库

这些内容都非常非常非常重要,多花点时间也正常
书籍

计算机网络自顶向下,MySQL必知必会,MySQL45讲,MySQL是怎样运行的,Redis核心技术与实战,Redis深度历险:核心原理和应用实践,操作系统我没看书....
计网计操究极八股文:小林Coding
视频

网络:中科大老师 郑烇、杨坚
操作系统:南大 蒋炎岩
MySQL Redis:纯看书,书里全都是面试题。
这些内容肯定是太多太多了,所以视频课我都是选看,更多的是看书。
Linux

我之所以要把Linux单拿出来是因为咱既然志愿当一名新生代农民工,就得多了解了解农民工干活的环境。
B站大丙的Linux入门课,牛客网有一个视频课,Web服务器。 除此之外,学有余力的同学可以折腾下网络抓包,面试的时候有面试官专门问了:有没有自己抓过包。
如果想找嵌入式,可以研究一些Linux内核和面试官battle一下。
一点点Go

文档

煎鱼,极客兔兔,李文周,刘丹冰。
视频

刘丹冰八小时转Go
七米老师
当时学Go是为了完成字节跳动青训营的项目,也因为这个项目,让我在秋招的时候有的讲,我最后要签的工作大概率也是Golang后台开发工程师。
项目

秋招的时候我在简历上写了三个项目,

  • 参加字节青训营完成的简易版的短视频后台服务器开发;
  • 牛客的Web服务器;
  • 在华为实习完成的简单的APP。
因为投递的岗位大部分是后台,所以问的最多的是和1相关,有时候会介绍实习的工作内容,2的话,太普遍了,面试官见得太多,基本就问IO多路复用,线程池,你改进了哪些,还有一两次被吐槽怎么都是这个项目...
我感觉可以包装包装,把他应用起来,比如和Carl推荐的KV跳表存储项目结合一下。
可以用一些企业级的开源组件,比如Kafka,Docker,K8S,但是只要你写了,就大概率会问一些相关的知识。
语言选择

我相信,很多人转码的第一步就是选择一门语言,因为工科都学过C,平常做课题也用的是C,自己就接着学了C++,没考虑很多。
有好有坏吧,好处呢就是感觉不用学很多框架,也少了一些竞争对手,坏处就是和java比少了很多互联网相关的岗位。
但C/C++的话除了互联网,在制造业(汽车电子,QT界面开发),芯片公司,自动驾驶这些领域也有很大的需求。
相信大家都看到Golang很火,不少互联网公司看上它节省机器资源,上手简单的特点,在积极转变,有同学想学的话,可以把它当做第二语言来学习,相当于多点了一个技能点吧~
所以推荐大家根据自己期望加入的一些公司和岗位,去官网查看对应的招聘信息进行语言和技术栈的选择。

最后

建议大家擅用【牛客】,牛客现在已经是国内最大的题解社区了。
题解和讨论非常之多,有不懂的都在这边提问,会有很多热心大佬解答, 也可以看看别人怎么解题的。


有很多优质创作者入驻牛客,分享干货含量超高的技术文章和课程,另外还可以活用牛客题库来刷题巩固知识点,比如算法,sql,java,前端等等,都是系统化学习。


看下这张图,已经突出牛客社区业务包括不限于题库、面试、学习、求职、讨论区等,可以去刷题、offer讨论、咨询公司情况、投简历。
牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网
作者:healerrrrrr
来源:牛客网
gyeonwoo 发表于 2024-1-7 00:28:42|来自:中国 | 显示全部楼层
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。 软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试,然后进行编写再提交程序。
如通过低代码平台实现,常用的功能,小白经过培训也能搭建,复杂的业务逻辑,只需要懂技术基础可以。





zhaoxiaoning 发表于 2024-1-7 00:29:22|来自:中国 | 显示全部楼层
第一:Web开发领域。Web开发是当前一个重要的开发领域,Web开发涉及到的应用领域也十分广泛,可以说有互联网的地方就有Web软件。Web开发分为前端开发和后端开发两大部分,前端开发需要学习三个基本知识,包括Html、CSS和JavaScript,其中JavaScript是重点也是难点。后端开发可以采用众多开发语言,其中比较流行的编程语言包括PHP、Java和Python。另外,Web开发还需要掌握数据库知识以及云计算平台的相关知识(IaaS、PaaS)。
第二:移动端开发。随着移动互联网的发展,目前移动端开发的任务也比较多,移动端开发集中在三个领域,分别是Android开发、iOS开发和各种小程序开发。其中Android开发需要学习Java或者kotlin语言,而iOS开发需要学习OC或者Swift,小程序开发则需要掌握其对应的开发语言,大部分小程序开发语言都属于类前端开发语言,还是比较容易掌握的。
第三:嵌入式开发领域。随着5G标准的落地应用,未来嵌入式开发领域将释放出大量的开发任务,包括大量的可穿戴设备开发等等。嵌入式开发涉及到三方面内容,分别是设备(各种传感器等)、网络和平台,编程语言通常可以从C语言开始学起。
第四:大数据相关领域。随着大数据时代的到来,大数据也成为软件开发的重要部分。大部分大数据相关从业者薪资高,福利待遇好,人才需求大。学大数据相关领域的开发,主要需要掌握Java、Linux、Hadoop、Zookeeper、Mysql、Sqoop、Hive、Oozie、Hbase、Kafka、Spark等课程。学会这些,月薪2W都是很常见的。
dybb 发表于 2024-1-7 00:30:20|来自:中国 | 显示全部楼层
软件开发是一个大的方向,其实初学者需要定一个具体的小方向,比如:android开发、ios开发、后台开发、嵌入式开发、AI、大数据等等应用方向。
定好方向之后就要学习相关的基本知识,计算机原理、计算机网络、编程语言等。
1、编程语言的选择,编程语言很多了,编程语言就是工具,有了工具才能创造更多东西出来,熟练使用工具是很必要的,也是最基础的,比如:Python(做后台、爬虫、科学计算等),Java(后台、android....)、C/C++、Go、PHP、swift/OC、js、.net等等,选择不同的开发方向需要选用更适合的编程语言。
2、学习编程语言之后,需要熟悉下找一个更适合这门语言的IDE,就是开发工具。
3、学习选择方向的官方API
4、一般涉及的都会包括数据库(mysql、sqlserver、sqlite、mongodb、Oracle....),网络请求、文件读写、常用api、常用开源库、常用模块等。
5、大部分软件开发都是处于一直在学习新东西的过程,使用新东西创造新东西。
最好先选定一个方向,确定好了之后就去官方学习官方文档,用到哪些不会的再去学,多练多练多练,熟能生巧。
tornado598 发表于 2024-1-7 00:31:03|来自:中国 | 显示全部楼层
这是我们学校软件开发的群不课程,要是感兴趣的话可以了解一下:
第一阶段
    1、计算机操作基础
    2、Office办公自动化
    3、计算机组装与维护
    4、C语言
第二阶段
    1、SQL Server2005数据库设计
    2、和高级查询
    3、数据结构
    4、C#面向对象程序设计
    5、HTML5与CSS3开发
    6、JavaScript
    7、jQuery高级编程
    8、PHP开发
第三阶段
    APP Development
    1、JavaScript特效制作
    2、jQuery应用开发
    3、HTML5与CSS3开发
    4、Java面向对象程序设计
第四阶段
    JAVAWEB Development
    1、产品流程应用
    2、移动平台界面设计
    3、Oracle数据库开发
    4、JavaWeb应用开发
    Mobile APP Development
    1、实训一:WEB前端设计与开发
    2、实训二:J2EE项目开发

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则