‘壹’ 程序员分前端与后端,那么后端程序员都做些什么看完就知道了
我刚开始做Web开发的时候,根本没有前端,后端之说。
原因很简单,那个时候服务器端的代码就是一切: 接受浏览器的请求,实现业务逻辑,访问数据库,用JSP生成HTML,然后发送给浏览器。
即使后来javascript在浏览器中添加了一些AJAX的效果,那也是锦上添花,绝对不敢造次。因为页面的HTML主要还是用所谓“ 套模板 ”的方式生成:美工生成HTML模板,程序员用JSP,Veloctiy,FreeMaker等技术把动态的内容添加上去,仅此而已。
那个时候最流行的图是这个样子:
在最初的J2EE体系中,这个 表示层 可不仅仅是浏览器中运行的页面,还包括Java写的桌面端,只是Java在桌面端太不争气, 没有发展起来。
每个程序员都是所谓 “全栈”工程师 ,不仅要搞定HTML, JavaScript, CSS,还要实现业务逻辑,编写访问数据库的代码。等到部署的时候,就把所有的代码打成一个WAR包,往Tomcat指定的目录一扔,测试一下没问题,收工回家!
不差钱的公司会把程序部署到Weblogic,Websphere这样的应用服务器中,还会用上高大上的EJB。
虽然看起来生活“简单”又“惬意”,但实际上也需要实现那些多变的、不讲逻辑的业务需求,苦逼的本质并没有改变。
随着大家对浏览器页面的 视觉和交互 要求越来越高,“套模板”的方式渐渐无法满足要求,这个所谓的表示层慢慢地迁移到浏览器当中去了,一大批像Angular, ReactJS之类的框架崛起,前后端分离了!
后端的工程师只负责提供接口和数据,专注于业务逻辑的实现,前端取到数据后在浏览器中展示,各司其职。
像Java这样的语言很适合去实现复杂的业务逻辑,尤其是一些MIS系统,行业软件如税务、电力、烟草、金融,通信等等。 所以剥离表示层,只做后端挺合适的。
但是如果仅仅是实现业务逻辑,那后端也不会需要这么多技术了,搞定SSH/SSM就行了。
互联网,尤其是移动互联网开始兴起以后,海量的用户呼啸而来,一个单机部署的小小War包肯定是撑不住了,必须得做分布式。
原来的单个Tomcat得变成Tomcat的 集群 ,前边弄个Web服务器做请求的 负载均衡, 不仅如此,还得考虑状态问题,session的一致性。
(注:参见文章《小白科普:分布式和集群》)
业务越来越复杂,我们不得不把某些业务放到一个机器(或集群)上,把另外一部分业务放到另外一个机器(或集群)上,虽然系统的计算能力,处理能力大大增强,但是这些系统之间的通信就变成了头疼的问题, 消息队列 (MQ), RPC框架 (如Dubbo)应运而生,为了提高通信效率,各种 序列化的工具 (如Protobuf)也争先空后地问世。
单个数据库也撑不住了,那就做数据库的 读写分离 ,如果还不行,就做 分库和分表 ,把原有的数据库垂直地切一切,或者水平地切一切, 但不管怎么切,都会让应用程序的访问非常麻烦,因为数据要跨库做Join/排序,还需要事务,为了解决这个问题,又有各种各样“ 数据访问中间件 ”的工具和产品诞生。
为了最大程度地提高性能,缓存肯定少不了,可以在本机做缓存(如Ehcache),也可以做 分布式缓存 (如Redis),如何搞 数据分片 ,数据迁移,失效转移,这又是一个超级大的主题了。
互联网用户喜欢上传图片和文件,还得搞一个 分布式的文件系统 (如FastDFS),要求高可用,高可靠。
数据量大了,搜索的需求就自然而然地浮出水面,你得弄一个支持全文索引的 搜索引擎 (如Elasticsearch ,Solr)出来。
林子大了,什么鸟都有,必须得考虑 安全 ,数据的加密/解密,签名、证书,防止SQL注入,XSS/CSRF等各种攻击。
前面提到了这么多的系统,还都是分布式的,每次上线,运维的同学说:把这么多系统协调好,把老子都累死了。
得把持续集成做好,能自动化地部署,自动化测试(其实前端也是如此),后来出现了一个革命化的技术 docker , 能够让开发、测试、生成环境保持一致,系统原来只是在环境(如Ngnix, JVM,Tomcat,MySQL等)上部署代码,现在把代码和环境一并打包, 运维的工作一下子就简化了。
公司自己购买服务器比较贵,维护也很麻烦,又难于弹性地增长,那就搞点虚拟的服务器吧,硬盘、内存都可以动态扩展(反正是虚拟的), 访问量大的时候多用点,没啥访问量了就释放一点,按需分配,很方便,这就是 云计算 的一个场景。
随着时间的推移,各个公司和系统收集的数据越来越多,都堆成一座大山了,难道就放在那里白白地浪费硬盘空间吗?
有人就惊奇地发现,咦,我们利用这些数据搞点事情啊, 比如把数据好好分析一下,预测一下这个用户的购买/阅读/浏览习惯,给他推荐一点东西嘛。
可是这么多数据,用传统的方式计算好几天甚至好几个月才能出个结果,到时候黄花菜都凉了,所以也得利用分布式的技术,想办法把计算分到各个计算机去,然后再把计算结果收回来, 时势造英雄, Hadoop 及其生态系统就应运而生了。
之前听说过一个大前端的概念,把移动端和网页端都归结为“前端”,我这里造个词“大后端”,把那些用户直接接触不到的、发生在服务器端的都归结进来。
现在无论是前端还是后端,技术领域多如牛毛,都严重地细分了,所以 我认为真正的全栈工程师根本不存在,因为一个人精力有限,不可能搞定这么多技术领域,太难了 。
培训机构所说的“全栈”,我认为就是前后端还在拉拉扯扯,藕断丝连,没有彻底分离的时候的“全栈”工程师。
那么问题来了, 后端这么多东西,我该怎么学?
之前写过一篇文章叫做《上天还是入地》,说了学习的广度和深度,在这里也是相通的。
往深度挖掘,可以成为某个技术领域的专家,如搜索方面的专家、安全方面的专家,分布式文件的专家等等,不管是哪个领域,重点都不是学会使用某个工具和框架, 而是保证你可以自己的知识和技术去搞定这个领域的顶尖问题。
往广度发展,各个技术领域都要了解,对于某种需求,能够选取合适的软件和技术架构来实现它,把需求转化成合适的技术组件,让这些组件以合适的方式连接、部署、运行,这也需要持续地学习和不断的经验积累。
最后,以一张漫画来结束吧!
C/C++高级工程师学习路线图:
‘贰’ 学完软件开发可以做什么工作以后职业发展是什么
学软件开发的,以后出来除了可以做程序员,还可以做如下职业:
创业。最近几年,IT行业中因为创业实现逆袭、直接当上CEO、赢取白富美、走上人生巅峰的例子频频出现。开发者在IT领域创业也有自身的优势,自己拥有技术,能够保证产品品质。
研发管理。这部分开发者占比为26.08%。这也是我们比较常见的软件开发者职业生涯轨迹发展道路,先在研发一线岗位实战锤炼,获得更多经验之后,逐渐走向管理岗位:工程师、项目经理、研发总监、技术副总、CTO……转向研发管理岗位的开发者,需要具有一定的领导管理能力,当然,能够有领袖气质自然能够更好的做好这些工作。
3.培训讲师,可以利用自身技术储备对新手进行培训
除此之外,营销销售、咨询服务、运维、运营推广及传媒等行业也都有开发者愿意从事。
‘叁’ 程序员创业可以做什么
程序员创业一般可以做的,比如说帮别人代打。代码。或者说帮别人编程序,这些都是程序员的本职。
‘肆’ 学软件开发的,以后出来除了可以做程序员,还可以做什么
学软件开发的,以后出来除了可以做程序员,还可以做如下职业:
创业。最近几年,IT行业中因为创业实现逆袭、直接当上CEO、赢取白富美、走上人生巅峰的例子频频出现。开发者在IT领域创业也有自身的优势,自己拥有技术,能够保证产品品质。
研发管理。这部分开发者占比为26.08%。这也是我们比较常见的软件开发者职业生涯轨迹发展道路,先在研发一线岗位实战锤炼,获得更多经验之后,逐渐走向管理岗位:工程师、项目经理、研发总监、技术副总、CTO……转向研发管理岗位的开发者,需要具有一定的领导管理能力,当然,能够有领袖气质自然能够更好的做好这些工作。
3.培训讲师,可以利用自身技术储备对新手进行培训
除此之外,营销销售、咨询服务、运维、运营推广及传媒等行业也都有开发者愿意从事。
‘伍’ 软件程序员,白手创业,有什么好点子或项目
想要创业,您至少需要考虑以下几个方面的问题:
1、考虑合适的创业项目。比如您是想从事餐饮行业、服装行业、互联网行业、教育行业还是其他行业;是以加盟的形式创业,还是独立经营;是经营网店还是实体店铺。同时还要考虑您选择的创业项目是否有发展前景,是否能够盈利。
2、考虑自身是否具备资质。比如,如果您想从事餐饮行业,是否有这方面的经验和必备知识。
3、考虑创业资金问题。任何创业都离不开创业资金,您是否已经准备好充足的资金。另外,任何创业都有失败的可能,您是否已经做好可能亏损的准备。
创业离不开资金周转,如果需要创业贷款,一定要选择正规品牌,比如度小满有钱花,有钱花是度小满金融旗下信贷服务品牌,为了给广大用户谋福利的同时助力小微企业,2021年8月10日至9月30日,通过度小满金融APP参加818福利活动,邀请生意好友可以获得现金奖励,最高1万元,同时好友可以获得“日息万1借款利率优惠”。具体活动信息可以通过度小满金融APP了解详情。
此回答由康波财经提供,康波财经专注于财经热点事件解读、财经知识科普,奉守专业、追求有趣,做百姓看得懂的财经内容,用生动多样的方式传递财经价值。希望这个回答对您有帮助。
‘陆’ 我是程序员,打算30岁左右创业,给点建议、规划
想要创业,建议您选择一个合适的创业项目,看自身是否具备相关项目的资质,找对项目之后脚踏实地努力。当然创业过程中资金也是需要考虑的问题,如果您启动资金有限,可以通过小额贷款的方式来解决。
推荐使用有钱花,有钱花是度小满金融旗下信贷品牌,面向用户提供安全便捷、无抵押、无担保的信贷服务,借钱就上度小满金融APP(点击官方测额)。有钱花消费类贷款,日息低至0.02%起,年化利率低至7.2%起,具有申请简便、利率低放款快、借还灵活、息费透明、安全性强等特点。
2021年5月21日,度小满金融推出以“家和万业兴”为主题的助力小微活动,提供10万份“日息万一+百万保险”礼包,帮助小微企业家庭成长。数量有限,先到先得,活动详情请以度小满金融APP页面显示为准。
和您分享有钱花消费类产品的申请条件:主要分为年龄要求和资料要求两个部分。
一、年龄要求:在18-55周岁之间。特别提示:有钱花谢绝向在校学生提供消费分期贷款,如您是在校学生,请您放弃申请。
二、资料要求:申请过程中需要提供您的二代身份证、本人借记卡。
注意:申请只支持借记卡,申请卡也为您的借款银行卡。本人身份信息需为二代身份证信息,不能使用临时身份证、过期身份证、一代身份证进行申请。
此答案由有钱花提供,因内容存在时效性等客观原因,若回答内容与有钱花产品的实际息费计算方式不符,以度小满金融APP-有钱花借款页面显示为准。希望这个回答对您有帮助。
‘柒’ 程序员转型做什么好
程序员转型可以做的职业很多,比较有前途的有创业、研发管理、产品经理、培训师、销售、运维等,具体原因如下:
一、创业。最近几年,IT行业中因为创业实现逆袭、直接当上CEO、赢取白富美、走上人生巅峰的例子频频出现。Facebook以190亿美元的价格收购了WhatsApp,而WhatsApp创立也就不到五年时间。同时,Facebook创始人扎克伯格同时也是一位创业者。开发者在IT领域创业有自身的优势,自己拥有技术,能够保证产品品质。
二、研发管理。这也是我们比较常见的软件开发者职业生涯轨迹发展道路,先在研发一线岗位实战锤炼,获得更多经验之后,逐渐走向管理岗位:工程师、项目经理、研发总监、技术副总、CTO……转向研发管理岗位的开发者,需要具有一定的领导管理能力,当然,能够有领袖气质自然能够更好的做好这些工作。
三、产品经理。国内目前最牛逼的产品经理非微信之父张小龙莫属,如果你拥有绝佳的洞察力,能够了解人性需求,相信自己可以创造出人人都愿意的产品,你也可以像张小龙一样,升职加薪、当上总经理、出任CEO、迎娶白富美、走上人生巅峰。
四、培训讲师。“三人行,必有我师”,你希望成为那个“师”吗?口若悬河、侃侃而谈,你的学生仰望着你,你看着学生一步步走向成功、升职加薪、当上总经理、出任CEO、迎娶白富美、走上人生巅峰也未尝不是人生一大乐事。
五、销售。如果你在做项目的过程中与甲方建立起了深厚的“友谊”,当然你也可以转行去做销售。而且开发出身的销售,起码比较务实,也比较容易和客户建立起信任。
六、运维。即使程序员的代码写的很烂,但只要对产品熟悉,转行做运维还是可行的。毕竟运维基本上不用太大的技术含量。
‘捌’ 后端开发程序员究竟做什么
后端开发程序员究竟做什么?在现实中,即使前端开发获得了大部分的荣耀,但是世界上存在的大多数代码(可以说是最有用的代码)是最终用户从来不会看到的后端代码。前端开发人员构建用户界面,而后端开发人员编写代码,使其工作;后端开发人员写可使得按钮工作的代码,通过指出从数据库中提取哪些数据并将其传回到前端。后端开发程序员究竟做什么接下来我们具体说说
‘玖’ 程序员转行可以做什么
面对着日新月异的代码和语言,你是否感到了力不从心?稍有懈怠,就跟不上岗位需要了?身体渐渐的发福,熬夜写代码开始扛不住了吗?
这个时代很残酷也相对公平,残酷的地方在于世界的变化之快容不得人有片刻懈怠,公平的地方在于:不论你是年轻还是年老,都要靠实力说话。
那些被时代抛弃的永远都是跑得比较慢甚至在原地徘徊的人,即所谓的工作十年却只有一年工作经验。
年轻程序员的优势在于年轻和激情,大龄程序员的优势在于阅历和经验。所以,年轻程序员不要有跨越年龄阶段的焦虑,大龄程序员也不要觉得年轻人抢了自己的饭碗。
每个年龄段都有自己要解决和面临的问题,认清自己内心真正的需求和渴望,再去寻找适合自己的栖身之地打怪升级,才是当务之急哦。
‘拾’ Java程序员可以从事哪些工作
java是目前主流的开发语言,程序员不论是大数据、云计算、web前端、后端开发等都需要从java学起,如果你想计入IT高薪行列,建议学java!
java学习内容主要有:
①JAVA编程基础(基础语法、面向对象、和谐特性等)
②WEB应用开发(静态网页制作、Oracle数据库、Java Web开发技术、Linux技术、网站性能与安全、软件工程开发流程、Java Web和谐等)
③企业级框架开发(数据结构与算法、SSH框架、JavaEE和谐等)
④项目实训
互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。
想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,建议实地考察对比一下。
祝你学有所成,望采纳。