㈠ 目前大学生,总感觉自己要学一点编程语言,有什么推荐的吗
那需要先定义一下你所谓的“好”是什么,说明白这个,才可能做出合适的选择。所以,接下来我根据这个不同的“好”,给出建议。
一、如果你说的“好”是指“入门难度低”
即,你想要一门编程语言,可以在3个月内,通过自学来掌握语法,且能用学到的知识来做点有意义的小项目。
那我推荐 python,因为入门很容易,这点从雨后春笋般的面向中小学生的Python编程培训就可以看出来。你也可以在京东、当当等以Python+零基础为关键字来检索相关图书。
二、如果你说的“好”是指生态好
即,这种编程语言,生态很好,各种轮子齐全,各大公司支持力度很高,典型应用非常多,那我觉得看看编程语言排行榜,取前几位就好。
如果你说的“好”是指工作好找
即,这种编程语言,工作机会多。
某编程平台发布的最具就业前景的编程语言排行榜上,java排第一,网红语言Python排第二,JavaScript排名第三,其次是C%2B%2B、php等。也就是说2018年最具有“钱”途的编程语言是:Java、Python、JavaScript。
1、Java
Java 这种老牌编程语言,虽然一直被诟病语法臃肿,但是其实随着Java版本的更新,已经逐渐支持了很多新语言的特性,并且在2019年的TIOBE编程语言排行榜上,Java每月总是稳坐第一宝座,毋庸置疑,它仍然是市场上最流行和最火爆的编程语言。
目前国内的电商行业一片火热,电商平台的数量也十分惊人,由于Java语言开发的电商平台具有安全性高,结构合理 ,高效,稳定,扩展性强,支持高并发量、采用集群式部署等特点,在开发方面相对于其他编程语言具有天然的优势,所以电商平台基本都是由Java开发而成,像京东,阿里巴巴,淘宝等大型电商平台均是使用Java开发。
也许未来Java 不是最有前景的语言,但是Java在未来很长一段时间内都会是不可或缺的语言,相关的工作岗位也自然一直有需求,而且Java语言的易学性也很高,适合新手。
2、Python
AI兴起,Python开始大,Python是一种用于Web开发的通用编程语言,也是软件开发人员的支持语言,它可广泛用于科学计算,数据挖掘和机器学习,人工智能大量依赖数据,而Python在数据分析,数据挖掘方面实用性非常的强,当然有人会问了 Python那么火热,以后会不会竞争很大。
Python之所以这么火热,是因为现在大家都对趋势越来越敏感,大家开始焦虑自己是否会被淘汰,所以很多其他编程语言的从业者都在关注,学习使用 Python。
更何况,在一个新的时代即将到来,相对应的需求本就大,所以,一旦人工智能技术有所成熟与突破,Python 的需求还会更大。再说到易学性,其实Python相比较大部分语言来说,都算是很容易上手的,语法清楚,也没有那么多复杂的概念,适合新手学习。
3、JavaScript
超过80%的开发者和95%的网站都使用 JavaScript 来实现页面上的动态逻辑。
随着物联网和移动设备越来越流行,React和AngularJS号JavaScript前端框架具有巨大的未来潜力,所以我们可能很快就会看到JavaScript 的普及。
当然,你也可以根据自己所在地区,检索下招聘网站,看看针对初学者的工作机会,选择机会多的那种语言。像51job、智联招聘、拉勾等,都是可以利用的网站。
四、如果你说的“好”是指未来薪水高
即,使用这种编程语言为主要开发语言的程序员,将来普遍薪水较高。
那要看看统计数据了。
StackOverflow 2019年的调研数据,全球范围内,编程语言的收入排行如下:
上榜的都是不错的,可以排除掉那些工作机会比较少的,然后在剩下的语言中选一种来学习。
㈡ 学习编程什么语言最好
语言是门重要的学问,今年大二的我,自学C语言,下面给一些建议
学习语言是简单的,语言是工具,使用好工具是一方面,其他各种领域知识也是很重要的另一些方面。高中毕业后没事刷OJ应该是蛮适合的吧,正好把算法和编程语言练好。到了大学后,如果是我重来,我会:
1. 不放过学校的基础课程。
2. 做ACM算法题,混各种OJ。
3. 使用Linux。
4. 参加各种编程方面的活动。
所以学什么还是要因人而异吧,重点是要用得上。
㈢ 0基础想从事编程,建议学习哪些编程语言,哪些好就业
正确的学习方法、学习路径,不要说简单的编程,转型都是可以的,但是自学编程有几个非常大的坑,很多人因此走了不少弯路:
1、如果你不是计算机、工科专业,不是以编程为生的大学毕业生,不要去用国内的大学教材来入;不要去学考验人性的C/C++、Java、汇编等,
这些东西已经不适合你,推荐你去学Web前端(HTML、CSS、JavaScript)、去用PHP搭建网站、或者学Python(取代VBA来提升办公效率,替代Excel、PowerBI来做数据分析、可视化)、小程序等,一周可入门,好玩又好学,对工作有帮助,深入可提升工资,也不排除可转行;
大学教程讲理论比较多,所学的内容只有你在月薪2万以上才开始发挥作用。即使月薪2万以后,也不建议你使用国内的人写的计算机教程,国内越是名校,学历越高,就越会用国外写的教材。而美国学计算机理论之前在高中就有AP课程,而国内绝大多是计算机零基础。
C/C++、Java不学习半年以上,你是很难开发出一个实用的东西的。用C++写贪食蛇小游戏?别搞笑了,你觉得你这游戏实用吗?用Java开发安卓?你零基础学半年,能开发一个App上线吗?用Java做网站?稍微简单的JSP已经淘汰了(当然国内有些外包公司还在用JSP)。
如果你花半年时间学前端、Python、PHP,不仅可以开发出实用项目,你都可以来接外包、来找工作了,甚至可以转行了。
很多人居然推荐已经工作了的人或者不想从事编程行业的人从汇编、网络、C等等这些学起来,你可能大学是这么读过来的,但是这只适合计算机相关专业的人,不适合其他人,你的这些推荐太误人子弟了。
(计算机、工科相关专业还是要把C/C++或Java给学好的。)
2、不建议你学易语言,不推荐你学VB、VBA,因为这些没有前途,不建议你去学Julia,Dart,你没有基础就不要追逐过新的东西;
有些方向不实用,也就是实际开发已经不作为一个通用的解决方案了,比如JSP、Flash这些;
有些方向在国内用的人会越来越少,比如VB、比如http://ASP.NET;
有些方向没有前途还会阻碍你的进步,花大量时间折腾没有意义,比如易语言;
有些方向不适合新手去学,新手学了没用,哪怕再怎么流批,比如汇编;
有些技术听起来很有前途,但是不适合新手去跟风学,比如Dart,Go,你啥基础没有你也学不通。
3、不要去买书来啃好几周,不要不动手光看视频光看书,学技术一定要先从安装开发环境开始,编程只有动手实战起来才会变得简单。很多人一上来就问,编程难么?我零基础能学会么?这个知识是用来干啥的?你问这么多干嘛?有些人收藏了几百篇好文章,花的时间不可谓不多,但是就是没有开始实战起来,这能学会么?
有些人买了一些经典计算机教材(通常比较厚),一啃就是几个星期,甚至个把月。更可怕的是直接去啃编译原理、算法导论、计算机系统、网络编程这些书,不说你啃不啃得下来,你即使学完了你也不知道可以干嘛啊.
JS直接啃犀牛书,这本书可有1000页。很多人啃了半天学不下来就说编程好难。你学习方式方法有问题,编程能不难么?
PHP、Python、前端这些如果你学习两天到一周都不能上手实际开发一个东西出来(非写几行代码),你就走了很多弯路。
4、大学生千万不要用考证的方式来学编程;如果学校对二级计算机等级考试有要求,就考Office或Python吧,混过去就行了,不要去参加什么软考之类的,浪费你的时间。
很多学生视野比较狭窄,他只能接受到学校和身边的人灌输给你的知识和观念,只能了解到有限的评价体系,觉得考了这些计算机等级考试和软考才算得上是优秀,学编程也往往以这些知识为目标。这些完全可以理解,因为我大学时也考过。
事实上评价一个学生在计算机方面是否真的优秀,一个是你对技术知识的深刻理解,这一点你可以像写论文一样多写写技术文章,培养自己的研究探索精神;二是你对项目产出能力,你能够证明给自己、给他人看的,项目是非常重要的一个依据。对于一个初学者,该如何输出自己的东西这里面有非常多的学问,以后我再整理一下。
学校对于优秀学生的评价体系与企业对于优秀员工的评价体系差异是非常大的,而你个人对于学技能的追求,你自己心里也有一套标准,这三者之间有很大的不同。但是很多零基础想学技能的人却被要求按照学校的标准与方式来学,怎么可能学得好?
(当然有些技术方向的证书是可以考的,比如网络工程师CCNP、运维工程师RHCE、RHCA,PMP这些行业还是比较认可的,软考什么的就算了)
5、学编程应该以项目开发为主,不要东学学西学学,到时候啥也没有掌握。不要看人家说Python好就去学Python,一会学C,一会学Java,招聘时就说自己掌握这些语言。要知道不没有开发出一个网站、一个网页、一个App,一个实际的东西、项目出来,你学再多,都等于半成品,都不算学会。
以项目为导向的方式来学习,即是符合程序员学技术的方式,又能让你对学技术欲罢不能。学习技术本来是一件可以让你很有成就感的事情,如果你学编程一个星期都受挫茫然没有效果,只能说明你学习方式不对。
6、很多编程零基础的人一上来就想学人工智能、大数据等这些看起来很有前途的方向,妄想通过培训半年就能找到好工作,这些都已经不切实际了。(特别刻苦肯学,有理工科背景,热爱数学、喜欢编程,能坚持学习一年以上的例外,国外这样的例子太多)。
如果你想转型IT,成为互联网方向的职场达人,其实方向是有很多很多的,比如如果你对设计有追求,哪怕你没有绘画天赋,你仍然可以学UI、UX;如果你对互联网产品感兴趣,沟通能力比较强,产品经理就比较适合你;如果你自认为你喜欢研究数据,数据分析就有大量岗位等着你;前端、后端、移动端、测试、运维等等都有大量高薪有前途的岗位。
互联网(含EE、CS)相关岗位是非常丰富的,编程不只是会让你成为程序员,机会多的是,没有必要硬着头皮不切实际去成为算法工程师、人工智能工程师、大数据工程师这些你已经不具备进入资格的方向。
如果你想快速入门,建议找个人指导你,比你买书、自己去翻视频、自己摸索要强得多。
有不少计算机专业的学生出去找工作前会去培训班或者他们学习时都是到网上看视频看文章,很多知识也是自学的,这是因为一般的学校会教你知识,而培训班和网上的资源会教你技能。
如果你是计算机相关专业,系统而底层的知识是十分有必要的,它会决定你职场上的高度。如果你学专业课感到艰难,你也可以花点时间从我说的Python、PHP和JavaScript入手学起,然后再来结合专业知识。
㈣ 作为业余爱好,学习哪一种编程语言比较合适
我感觉应该就是c语言吧,嗯,因为c语言的话是计算机有一个比较基础的东西,但是越是接触的东西越往往被人忽略,如果你这个c语言学好的话,对计算机来说肯定有更强的理解能力和更强的操作性。
㈤ 零基础入门学习什么编程语言比较好
如果你想学习编程,虽然选择第一门编程语言与你想用它来做什么最终达到什么目的有很大的关系,但是事实上某些编程语言的确比其他语言要好学。
选择一门合适的编程语言作为入门的语言对于培养自己编程的兴趣会有很大的帮助。
下面几种零基础小白入门的编程语言最佳候选名单。
1、Java
java是互联网历史最悠久、最坚挺和最具影响力的编程语言之一。你可以在线上线下、各种平台、操作系统和设备应用的核心部分发现Java的身影。它是一门极具特色的基于类、面向对象的编程语言,被设计为能够在尽可能多的平台上移植和运行。
出于这个原因,它也是世界上最流行的编程语言之一, 坚持首选Java作为第一门编程语言的学习者必须注意Java迫使你以程序员的方式思维一逻辑和分析式思考, 并且真正把握计算机是如何处理信息的才行。
学习Java可转向JavaEE分布式开发、大数据+人工智能、软件测试等等。
2、Python
当我们讨论第一门编程语言以及哪一门语言更加容易快速上手时,很容易会提到 Python。它是一种面向对象、解释型计算机程序设计语言。
Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是PythonC/C++)很轻松地联结在一起。
Python在设计上坚持了清晰划一的风格, 这使得Python成为一门易读、 易维护,并且被大量用户所欢迎的、用途广泛的语言。
学习Python可转向Python全栈+人工智能、网络安全、软件测试、云计算+信息安全等等。
3、C/C++
C++是C的自然演化,这两种语言大约分别起源于19世纪70年代和80年代早期。C语言是大学里面教的第一门编程语言,是一门使用非常广泛,通用的编程语言,它深远地影响了其后的几乎每一种语言。
关于C和C++的一件重要的事情是:它们都是计算机科学与编程最基础的语言。如果你学习它们,它们会使你获益,即使你之后并不去使用这两种语言,但它们会使你洞察计算机科学和计算机编程的起源和基础。
如果你不旨在专业的编程,这对你来仍然可以学习一下。 因为学过它们的人都会说学会了C/C++后,在学习其他语言就会变得很轻松。
学习C语言可转向智能物联网+嵌入式开发等等。
4、JavaScript
JavaScript通常我们会把它和Java相混淆,但是两者根本没有一点关系。
它是一门脚本语言,是Web的基础技术之一,但它也存在于浏览器之外。 随着服务器的强壮,虽然程序员更喜欢运行于服务嘴的脚木以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。
JavaScript比较容易学,使用浏览器即可运行,虽然它存在已经有一段时间了,但它正在迅速流行起来。学习JavaScript的成就感很高,因为你马上就可以做一些Web程序了,这是大部分人学习编程的原因。
学习JavaScript可转向Web开发、HTML5大前端等等。
㈥ 学什么编程语言比较好
我应该学什么语言?这句话被问的很多,但是通常是不会得到答案的。每种语言都有一个相对固定的崇拜者群体,每次在论坛上有人比较一种语言的好坏,就会引发一场持久的战争。之所以发生这种情况,正是因为各种编译语言之间的力量是均衡的,没有哪一种语言是完美的,能够“终结”其它的所有语言。即使像Linux下的几种脚本语言那些看似长的很像的语言,也没有谁被谁完全替代,大家和平共处了许多年,并且在各自的位置发挥着自己的长处。这里就我所了解的几种语言和自己学习的经历给新人一点建议,如果你有特殊的需求,比如工程或者数学,那可能需要一些特殊的语言来解决,比如Lisp或者Ada,这在该领域内基本上是无可替代的,那你也没有什么好迷惘的了。如果你只是一个刚刚准备进入编程这一行的学生,或者是一个想业余时间搞点自己的小东西的业余开发者,却不知道哪种语言比较适合自己,就接着往下看吧。首先是C语言。几乎所有的书和计算机专业都把C语言称为语言中基础的基础,在大学里基本上都属于必修课程,而且,现在还是我们国家计算机等级考试和程序员水平与资格考试的标准语言。C语言之所以有这样的地位,是因为它最接近底层,最接近汇编语言和机器语言,最接近机器的思维方式,其它更高级的语言,最终也要按照它的那些基本逻辑来处理问题。所以,学好C语言可以更方便的以机器的模式思考问题。另外,C语言所涉及到的程序的顺序结构循环结构和分支结构,还有整数字符串数组等变量,这些都是万物之源,所有的编程语言都离不了。而且C语言有着严格的格式规范,不符合规范的写法或者错误的类型定义,都会引起编译错误,还有像if(a=1)这种常见错误,都可以让人在使用C语言的过程中养成良好的编程风格和代码规范。这些习惯在以后使用其它更宽松的语言的时候,会大大提高你的代码质量。还有,因为C最接近底层,其代码效率只有手工优化的汇编可以匹敌,在许多脚本语言里面(比如Python)可以把一些大运算量的关键代码用C来完成,从而获得更高的执行效率。综上所述,如果你真的想学好编程语言,C是一定要好好学的。但是新手学C语言通常会出现一个问题,就是除了写个排序算法,似乎根本想不出来C语言有什么用。这是因为我们的教科书讲C语言的时候,只讲这些基本算法,甚至连读写文件都不去讲,更不用说图形界面处理了和网络操作了,没有这些知识,想写一个真正的应用那是不可能的。不过,书上没有不等于学不了,文件操作和网络操作的讲解网络上有着大把的讲解,(现在Windows下用这个人比较少了,但是讲解Linux下C语言编程的书还是相当多的。)只要你随便找几篇文章看看,具备了这些基础知识,写一个自己的WEB服务器并不难。在逐步增加功能完善功能的同时,你的C语言基本上就可以达到相当牛人的水平了。从0开始学习C的成本是比较高的,如果没有明师(或者一本好书)的指点,某些概念想开窍也有些困难。但是你一旦突破了C语言这个障碍,再学习其它的语言,学习的曲线将会大为平坦。除了C语言以外的其它流行的高级语言,不管是编译语言还是脚本语言,基本上都是面向对象的语言了,所以你要搞清楚面向对象的概念。真正适合理解面向对象的语言,以前是SmallTalk,它是完全面向对象的,但是这个语言在中国很少见,书也很难买,现在,你可以学Ruby。(Ruby的作者是日本人,因此在许多论坛上提到它的时候会被许多愤青跳出来乱骂,这种做法是极其愚蠢的),近年新出来的Linux发生版里面都自带了Ruby支持,这已经充分说明了它在Linux管理方面的地位。而Ruby On Rails这个名字,更成了Web2.0快速开发的代名词。该语言借鉴了其它许多语言的特点,并且写出了自己的特点。在Ruby里,所有的东西都是对象,包括一个数字,你可以调用-1.abs这样的方法。一切都是对象,才能让你真正的理解面向对象。一旦你掌握了Ruby的思想和面向对象的设计方法,那么使用Ruby on rails来开发一个网站将变得极其轻松,因为该框架已经包装了WEB开发中用到的前后台的功能,所有的数据库读写都通过你的对象自身来完成,前台HTML的生成有着完整的模板系统,只要把美工给你的HTML代码里面的内容换成你的变量就OK了。如果你拥有了C语言的根本,和面向对象的思维方式,那么,如果因为工作需要,要去学习Java或者C#,那都是相当简单的事情。至于Perl和Python,本身跟Ruby的语法就比较接近(Perl要复杂一些,稍后再说)。但是目前你所学习的C语言和Ruby,都不适合用来开发Windows桌面程序,如果有这个需求,目前最简单的语言应该就是C#或者VB.Net了。通过简单的拖放控件就可以摆出相当专业的软件界面,而程序本身要实现的功能也无非就是本地的文件处理和数据库处理,只要了解了该功能所在的命名空间和几个基本的函数,再查阅一下MSDN,写程序轻轻松松。(以前使用最广的是VB6,不过现在Windows已经全面迁移到了.Net平台,已经基本没有必要再去学习VB6了。)当然,如果你不喜欢.Net平台,还可以选择Delphi或者C++。C++通常被认为是更高级的C,但是实际上它们的差别很大。而C++用来写桌面程序,无非也就是调用一些已经被包装好的处理窗体的函数而已。(C也可以调用,只是比较麻烦一些罢了。)Delphi的语法需要一段时间来适应,但是Delphi的开发工具跟Visual Studio一样简单,大部分操作拖放控件就OK。如果是在Linux下面,也有不错的C++的IDE和开发库用来开发桌面程序。C++入门容易升级很难,没有个三五年的潜心研究,是没有办法精通它的精髓的。但是既然你已经学到了这一步,那你应该已经很明白自己需要学哪些东西了,只要去找书,找好的源代码来研究就行了。Java语言的崇拜者很多,不得不单独拿出来说。Java语言的爱好者喜欢在语言层面把Java和C++相比,而不屑于跟C#来比较,而在企业开发架构方面(特别是B/S方面),又拿Java和.Net来做比较,因为C++缺乏这方面的应用。Java语言本身是非常干净的,但是被各种各样的包搞的比较混乱,新手进来容易摸不着头脑,而且框架太多,又互不兼容,习惯了Struts开发方式的人员,很可能在换了一家公司的以后,虽然Java很熟练,但是却不得不又要花很长的时间来研究学习和适应另一种开发框架。(.Net也在向这个趋势发展了,而像Ruby on Rails这种框架,则保证了框架的统一性,程序员的学习成本降低,企业的培训成本和维护也更低了。)Java通常被认为适合用来开发超大型的B/S项目,而一般的脚本语言则被认为只适合小型的项目开发,通常,这种问题都是由于开发工具的限制带来的。.Net平台如果不是因为Visual Studio这样方便而优秀的开发工具,不可能取得今天的成就。而大部分脚本语言则没有这个优势,缺少大型项目的管控能力,使得代码量始终保持在一个比较低的水平。但是像Python这样的代码,可以凭借良好的代码设计,模块间松散耦合,做出极其灵活而且大型的项目(比如YouTube)。Perl语言在Linux的系统维护方面有着不可动摇的地位,大量的系统维护代码都是Perl语言写的(而且PHP流行之前,WEB的CGI基本上也是以Perl语言为主的)。Perl在文本处理方面有着强大的能力,其正则表达式的处理方式更是成了其它语言必须兼容的标准。正则表达式的学习难度比较高,要想达到灵活运用的水平,需要大量的练习。(但是如果只是要达到基本的通用就行的水平,那还是相当简单的。)而在WEB开发方面还有一个重要的语言不可不提,那就是PHP。PHP出现的目标就是提供更方便的网站开发的能力,它的语法跟其它的脚本语言比如Perl/Python/Ruby都很接近,而且提供原生的Mysql数据库支持,读写数据库即简单又高效,而且因为Apache的良好支持,才使得LAMP平台能够与Java和.Net平台相抗衡,而且成为了小型项目首选的解决方案。至于SQL,我并没有拿它当一门语言来算,它只是你在做数据库编程的时候所需要的一种工具罢了,就跟调用其它的系统函数没有什么区别。简单的SQL语法无非就是插入删除选择更新四种操作。处于同样地位的还有HTML/CSS/Javascript,如果做WEB开发,这三种东西是必须要了解的,当然,前两种你可以不必精通,因为有美工来负责,而JavaScript属于完整的编程语言范畴,通常的美工是没有办法熟练掌握的,还是需要程序人员的搞定。但是Javascript的难度,在这个阶段大概只有学习Ruby的十分之一了,想学,很快就可以掌握。(PS:Javascript也是一门易学难精的语言,好的JS框架全世界也就那么几个人能写的出来,比如prototype,jquery,extjs)。程序语言多种多样,但是编程的思想却是不变的,而像设计模式、程序架构这种东西,都是语言无关的。一个开发项目,前阶段的需求分析,项目分析,直到概要设计阶段都是语言无关的,而项目设计期间使用的UML图也做到了尽量抽象,和具体的实现语言无关。直到详细设计和编码的时候,才需要针对不同的语言的特点做些调整,而它们提供的功能则是完全一致的。作为一个好的程序员,需要的不是编码的能力,而是需求分析和项目设计的能力,用哪种语言来实现则是可以随机应变的,只要掌握了具体语言的学习方法,熟练掌握一门语言并不需要太长的时间。因此,在经过了最初的语言学习的阶段之后,程序设计人员需要尽快的向下一个阶段演变,对设计模式的学习和理解是一个长期的过程,需要大量经验的积累,并经常的总结经验,从经验中归纳出自己常用的模式。作为程序员,还要有精益求精的态度,在时间允许的情况下,时常反思自己的作品,寻找更好的解决方案,在浏览网站学习的过程中,时刻以自己的项目为思考的对象,当发现更好的方法的时候,使用恰当的工具和方法来重构自己的项目。在这样不断进步的过程中,你就已经不再局限于一个普通的程序员了。只有C和C++没有C+
可以先学C在学C++在学C#
这是一条不错的路线~
想专业点的话的话先学C再C++再JAVA,C#,其余的如VB,pascal跟着学就可以了
要是写一些小程序的话C和VB是比较常用的,JAVA也可以,不过那是解释型的。一般用在网上(写网页的还有html,asp,php等)。不过Java是比较新的语言,潜力很大,据说以后95%的程序会用它来写,手机上的小游戏一般都是用它写的。其实他用来写小游戏也不错,如robotcode之类,不需要很深的专业知识,比较容易上手。
一般会C跟Java就差不多了,C是必须要学的,经典且强大,C++基本可由Java代替
昨晚封了两个网段的IP,124.115.0.*和124.115.1.*,终于解决了服务器这两天来的经常莫名其妙的停止响应的问题。网站的流量现在并不是很大,而且大部分页面的逻辑也很简单,但是最近两天经常出现网站没有反应,一直显示在等待,打不开页面。远程登录服务器速度也非常慢,基本上很难操作,查看进程发现django多出了很多子进程,这说明有些进程堵塞在那里,无法返回所以启动了新的子进程。给mysql数据库启用了slow-log以后,日志里经常会出现一些简单的查询语句,直接把语句放到mysql客户端里去执行,速度却相当快,估计是因为mysql并发量太大,导致这些简单的语句也无法顺利执行,所以把所有的网站页面都堵死了。后来查看网站的访问日志,好家伙,已经1.5个G的日志了,这个样子在这种速度下也没办法查看,于是清空了日志,稍等了一会,很快就超过了100K,打开一看,sosospider的名字映入眼帘。N多个来自不同IP的soso蜘蛛同时抓取portal页面,即便文章页已经启用了缓存也不起作用。于是赶紧停了网站,到lighttpd设置里封了soso的这两个网段,顺便封了网易有道的一个蜘蛛IP,虽然并发没有soso这么大,但是每隔几条日志里就有一条是网易有道的。拜托腾讯soso的开发兄弟们,不会写程序别乱写,写出这种程序来还放出来咬人,会给人家造成切实的经济损失的。有趣的是,在soso里面搜索soso蜘蛛,出来的全是soso蜘蛛因为乱抓网站被站长封杀的新闻,soso还真是大公无私啊,绝对没有屏蔽自己的负面新闻。Django的最佳系统结构
Django也用了一段时间了,写了两三个小网站,但是始终感觉自己写出来的站点目录和功能的安排还是比较混乱,很难达到让自己满意的效果,更不要说令人赏心悦目了。尤其是,当你需要开发下一个网站的时候,虽然感觉用户部分的功能(注册/登录/忘记密码/修改用户信息)所有的网站是通用的,但是想复用现有网站的这个功能却相当困难,居然笨到只能把模板文件/Model/View挨个复制过去再修改,实在是难登大雅之堂。于是狠命的研究了一些文章,终于算是找到了点前人的经验之谈,大概的总结如下:项目文件manage.py/urls.py/settings.py尽量少的改动(当然,不改动也是不可能的),setting.py里面需要设置数据库的相关信息,还有模板目录之类的,模板目录是可以使用相对目录的(使用os.path),很可惜,我没有测试成功,在lighttpd下面它仍然使用相对目录来搜索模板,所以总是报错,但是我找到了另一种解决方案。
setting.py里面有一个配置选项TEMPLATE_LOADERS。默认情况下它使用两种加载机制,第一种是文件系统方式,即使用下面配置的TEMPLATE_DIRS目录,在里面寻找模板文件,如果没有找到,第二种是app模式,它会在INSTALLED_APPS所标识的已安装的App下面寻找templates目录,并在其中寻找模板文件。而这个第二种,跟TEMPLATE_DIRS是无关的。因此,只要注释掉第一行,TEMPLATE_DIRS这个选项就可以留空了。然后,在任意一个App目录下面建一个templates目录,把模板文件扔进去就OK了。当然,最佳方案是,每个Apps下面放它自己用到的模板文件。这样,以后将这个App放进其它的项目的时候,你不需要做任何设置,模板这一块就已经正常工作了。
然后是Urls,在每个App下面添加它自己的urls.py文件,在里面设定它所用到的url映射,然后在项目级的urls.py里面使用include方式加载各个App的url配置就可以了。但是这样有一个要求,就是这个App要使用统一的目录前缀,比如用户相关的Url都以user/开头。(我不知道是不是必须这样,但是目前我所掌握的知识,只能这样了。)
通过这两个改动,已经将App和项目的耦合性降到了最低,现在如果要重用一个App,比如用户部分,只要把user目录拷到另一个项目,在settings中安装这个App,在urls.py中include这个App的urls,就OK了。至少里面所有的功能都是正常可用的。(当然,模板文件可能需要针对新的项目做些改动,但是如果你的模板设计规则是相同的,那么只要在新项目的framework里使用相同的内容,而使用另一种不同的style文件就可以了。)花了不少时间把理财易的代码整理了一遍,整理了一下功能的组织,把用户部分/留言板/日记本/投票以及站内信/好友/圈子(这三个功能在理财易中没有开放)全部建成单独的App,并分离了Urls和模板,虽然导致项目目录下面的子目录多了很多,但是每个目录的功能都简单明白了很多,可以很方便的添加或者移除某个App,比如圈子或者站内信,只要在配置文件中安装该App,相应的页面上添加链接,该功能就变得马上可用了。最基本的理论就是这样,剩下还有一些高级技巧,比如:每个App下面都可以建一个叫sql的目录,里面建立对应于model名称的sql文件,那么,在执行了syncdb命令安装该App以后,这个SQL文件就会被自动调用,可以用来往分类表里插入系统默认的分类,或者往用户表里插入一条最高权限的初始用户等等。
每个App下面都可以建一个叫templatetags的目录,在里面添加template tags和filters,大家互不干扰。
每个App下面都可以建一个叫tests的子目录,里面放一些单元测试的代码,就可以直接对该App进行单元测试。
每个App下面都可以建一个叫management.py的文件,里面可以放任意的Python函数,并给该函数添加事件接口声明,比如dispatcher.connect(my_syncdb_func, signal=signals.post_syncdb),这样就可以在App安装完成的时候执行任意的功能。(注意,是在添加了任何一个App以后都会被调用到,而不止是自己被安装以后。)
还有,每个App下面的views.py不是必须的,你可以按照自己的需求把函数拆解到多个python文件中,只要在urls.py中引用了正确的类名就可以了。这对于一个功能比较多的App是相当有用的。
有了这些属性的帮忙,基本上你可以对自己的项目文件做出各种适合自己的调整,并且仍然保持项目结构的优雅,并且,对于程序的执行效能是完全没有影响的。希望这篇文章对于Django的用户起到一点帮助。
㈦ 刚毕业适合学习哪个编程比较好
入门选择哪门语言最好
推荐学习Java,Java相对于C语言来说更加的简单,包含的内容更加丰富,而且Java的就业方向也较广。
一 · 编程语言及其主要用途
常见的是 C Family (C系列语言),比如:C、Cpp(C++)、C Sharp(C#)、Java、Python、R、JavaScript、Objective-C、Swift、Go、Kotlin 等等。然后有很多脚本语言,Python 也在其内,比如:Ruby、Perl 等。
光说名字意义不大,所以举几个例子。
C 常用于单片机开发和一些接底层硬件的操作使用;
C++ 是 C 的超集,因为直接支持了面向对象所以更多用于游戏、图像开发方面;
C# 是微软为了把 Java 人才引入 Windows 平台设计的语言,和 Java 语法几乎一致,目前多用于服务器后端开发和 Unity 3D 的游戏开发,也有人会用这个做很多 windows 平台下的软件插件甚至常说的软件外挂(外挂其实严格说就是插件,但大陆地区已经有更深层的意义了,所以两者并列举例出来);
Java 是目前最流行的服务器后端开发语言和 Android 开发语言,因为有大量框架和工具包的支持,Java 语言的运行速度已经不能阻挡 Java 成为服务器开发的首选语言。至于是什么服务器后端开发,题主学了 JavaEE 自然便知,通俗举例来说可以 yy 一下:我写了这篇答案,答案存在哪里呢?肯定是在知乎那边!至于怎么存、怎么取,都是后端开发需要设计的问题了。Java 也曾一度是 Android 的首选语言(虽然目前 Kotlin 的影响很多人转战 Kotlin 去了),负责 Android 顶层的 APP 层开发。
Python 是目前机器学习最流行的语言,也可以做服务器开发,有堪比 Java Spring 框架的 Django 作为支持。更多的人会使用 Python 作为机器学习、深度学习的首选语言,因为 Python语法的简洁和类似数学式表达的规范,当然还是因为包多,很多学者科学家都会使用 Python 做科学研究。
R 语言作用类似 Python,常用于工程方面。还有一门语言是 Matlab,其实称之为语言是不恰当的,因为这是一个软件,脱离了软件就无法生存,远不是编译器那么简单的结构了。MatLab 汇集了太多的工具,便于科学从业人员快速分析数据,写出优良的程序,这种程序语言通常也称之为 Matlab;
JavaScript 是前端开发首选语言,在使用 HTML + CSS 模式绘制出页面图像后,通常都会使用 JS (JavaScript)来写交互、动画、请求、视图内容更新这些操作,这门语言是函数式也是面向对象的语言,灵活度极高,但有了 C Family 任何一门语言的基础就很容易学;
Objective-C 是苹果(Apple.Inc)开发的一门为 mac 和 iPhone 设备开发程序的语言,和 C++ 类似,也是 C 的超集,也是面向对象。但由于其太过于面向对象了(基于消息的传递数据机制)导致很不 C Family,所以对 C 系列人员上手难度偏大,比较冷门。但后来 iPhone 的崛起,导致该语言又一度热议起来;
Swift 是苹果最新发明的一门函数式编程语言,和 OC(Objective-C)的目的一样,为苹果设备而生,但苹果也提倡用该语言做工程方面的扩展,比如苹果会在宣传的时候拿它和 Python 对比。为了兼容 OC 的所有工具包,避免该语言的冷门,创造了 bridge 作为两个语言直接的桥梁,解决了语言兼容问题;
Go 语言是 Google 开发的一门函数式语言,特点是能解决大规模的高并发问题,天然支持多线程使得该语言一出来就广受关注。目前多用于机器学习和一些 Google 自己产品的开发以及后端服务器开发;
Kotlin 是大家常用的 IDEA 开发工具的开发商 Jetbrains 发明的函数式语言,这门语言是基于 JVM 进行设计的,比较完美地兼容了 Java 语言,所以前后端开发都可以使用该语言替代 Java,不确切统计是可以用比 Java 少一半的代码量完成同样的功能并拥有同样的运行效率。类似的 JVM 语言也有 Scale,但比较元老了,兼容力度不大所以也开始广受诟病;
Ruby 和 Perl 这些是典型的脚本语言,Ruby 多用于各个语言的粘合剂,Perl 是 Linux 下最常用的脚本语言,文本处理能力极强。
二 · 如何自学
这个问题其实答案很多,就像问一个人“如何才能提高分数”一样,是个“上帝问题”。我来简单解释一下什么是“上帝问题”:一个问题条件不充分,导致问题答案变数太大甚至可以出现毫无任何限制的答案,这类答案往往无意义或者意义不大,称之为“上帝问题”。
所以这个问题是没有好的答案的。
于是我便假设题主问题是:“一个时间充足、智力正常、周围电子设备允许、自律能力可以、、、等等的男生该如何自学达到学会某一门语言的目标?”
这样的话我们探讨起来可能会容易很多。
来个老套路吧,其实真的自律可以什么套路都行,自律不行,说什么都是废话。以下不是捷径,是远方:
通过视频入门(视频拥有大量的声音、图像、文字以及讲师不经意的犯错引发的笑点),视频和书不一样,视频是容纳了很多错误的,这些错误都是编程中可能会犯的,比如讲师少打了一个分号,变量名字写错了等等等等,这些在书本里面是看不到的,视频带给你的信息量远大于书本。
通过书本扎实思考,书本还是得看,必须得看,书是代表系统的、完备的,书总是一章一节地讲,不会错一个字地讲,很多东西就得从书里找,视频老师可能会讲漏,但书漏了第二版本还可以修订。至于怎么选好书,三步筛选:是否有第二版(或者第三四五... 版本)、豆瓣评价、实地摸(怎么说都不如自己去摸一摸,试试就知道适不适合自己了)
以一本书为主,其余书为辅,不出数月即可见效。
然后练习项目,此时你已经有了一定的基础了,而且在学习过程中肯定也是不断地码代码练习小项目小题目。此时你需要更多的时间去做更大的项目,通常很多杂牌书后面都会附一两个项目实战,可以试试手。项目必须练,这会让你成为和以前不同的两个人。
学习java,就来北京尚学堂
㈧ 想做副业,学编程,学哪种语言比较好(零基础)
什么是最适合初学者的编程语言?哪种编程语言最好?
从小我就知道我想成为一名程序员。关于它的事情总是令人兴奋。编程就像一个思维难题,您需要找出如何利用计算机来表达自己的创造力。刚开始的时候,我很迷茫,不知道从哪里开始。我最终选择了Java,主要是因为这是我真正听说过的唯一语言(谢谢,《我的世界》)。我不知道Java是用来做什么的。从Codecademy开始,我学习了非常基本的控制台语法。我觉得这很无聊,因此,我从中学不到任何东西。不幸的是,这段经历使我离开了很长一段时间。
如果您迷失了方向,不知所措,我想让您知道您并不孤单。有太多不同的技术,语言,框架,库等,因此很容易忘记每个功能。我想,您单击本文的原因是您有这种感觉,并问自己"我从哪里开始?"。这个问题的问题在于,没有一个简洁明了的答案。就像问"我应该使用什么螺丝刀?"或"我的汽车最适合的轮胎?"。简短的答案是:这取决于。
选择语言
当您进入编程领域时,您需要考虑一些路径和最终目标。基本上,您想通过编程完成什么,您想解决什么问题。不要仅仅因为某一种语言受欢迎而选择一种语言,或者您的朋友说您应该尝试一下。您想学习一种用于构建您热衷的东西的语言。您需要对目标进行一些研究,并查看完成该任务需要哪些技术。
一个例子
假装您想了解Web开发。为了帮助您理解,我将在Medium网站上对此进行解释。 Web开发的第一部分是前端。当您在Medium网站上阅读文章时,您正在看的是前端。它使用三种语言构建:HTML,CSS和JavaScript。 HTML和CSS不是编程语言,而是与JavaScript一起使用以创建应用程序的语言。 HTML(超文本标记语言)用于向您的网站添加元素。您在中级文章中阅读的文本全是HTML,按钮和图像也是如此。 CSS(层叠样式表)使您可以设置页面上看到的这些元素的样式。本文中使用的字体,文本的位置,不同组件的不同大小,均由CSS控制。 JavaScript是用于Web开发的编程语言。它用于向页面上显示的元素添加功能。当您单击作者帐户上的"关注"按钮时,正在使用JavaScript。 JavaScript使用HTML和CSS制作了一个按钮,用来跟踪该帐户,然后开始向您展示他们的故事。
Web开发的第二部分是后端,用户实际上看不到它。后端是存储所有站点数据的位置,然后将其发送回前端,以供用户查看。此帖子的评论或拍手数量全部存储在此。然后,您可以使用JavaScript来获取此信息并对其进行处理。我不会详细说明,但是希望您理解我要提出的观点-您需要弄清楚要构建和利用必要技术以完成任务的内容。
您可以认为它就像一台机器一样进行编程。假设有一辆汽车。为了正常运行,它需要引擎盖下的各种不同部件一起协同工作。
学习资源
确定了要学习的语言后,下一步就是找到要使用的资源。这完全取决于您的学习方式和预算。通过阅读或观看视频,您可能会学得最好。您可以花钱购买课程或书籍,也可以只使用YouTube等免费资源。学习编程并非要花钱,而是要花费时间。您的时间很宝贵,因此请确保明智地使用它。我将在下面链接到一些我发现最有用的资源。
1. Udacity
该网站提供免费和付费的编程课程以及各种其他主题。付费的几乎总是以10-11美元的价格出售。但是,这很受欢迎。有一些杰出的讲师,然后有一些非常糟糕的老师。幸运的是,他们确实提供30天退款保证,因此,如果您不喜欢自己的课程,则可以获得全额退款。
如果您想学习Web开发,我目前正在上一门很棒的课程,我强烈建议您退房。这是那些有兴趣的人的链接。
2. YouTube
该平台上有大量免费视频,它们对于学习基础知识和更高级的主题非常有帮助。尽管与Udemy一样,它还是很受欢迎的。
我最喜欢的创作者包括Brad Traversy,Web Dev Simplified,The Net Ninja和Colt Steele。
3. Codecademy
一个免费的网站,您可以边做边学。您在网站上有一个内置的代码器,可以为您输入的代码提供即时反馈。这是一种习惯于编写代码方式的有趣方式。他们提供了多种语言的大量课程。
4. FreeCodeCamp
与Codecademy非常相似的另一个站点,您可以在其中浏览器中进行编码。虽然我没有亲自使用过该网站,但一直有人告诉我,它对了解基础知识有很大帮助。对于那些对程序感兴趣但还不想投资的人,它可以作为一个很好的切入点。
无论您选择利用哪种资源,都需要确保自己也在练习。在学习了一个主题之后,尝试并以此为基础。
警告—不惜一切代价避免"教程地狱"
> via Freepik
正如我刚才提到的,构建辅助项目对于成为一名成功的程序员至关重要。在学习编程时,很有可能在某个时候发现自己陷入了"教程地狱"。这是一种学习状态,您必须依靠教程,不能自己构建任何东西。您需要有人牵着手,告诉您确切的操作。没有此帮助,您将无法做到。别误会,课程是学习编程语言基本语法的绝妙方法,但它们只占您学习内容的25%。
绝大多数需要使用您所学的知识制作自己的应用程序。我知道这非常难,因为在那里有很多课程可以构建出色的应用程序。尽管您需要花一些时间并了解基础知识,然后再去构建有趣的东西。我被困在教程地狱中浪费了一年多的学习时间。我没有动力,我无法独自做任何事情,而且对所教的内容我几乎没有保留。自从在我最近的课程中采用一种新方法,利用包括的编码练习并尝试在看到解决方案之前构建应用程序以来,我学到了很多东西。
通过这样做,您将学到的最重要的内容是如何使用Google。您将学习如何独自解决问题。现在这并不容易,但是未来的自己会感谢您。
总结
编程是一项很棒的技能。那里有许多种语言都可以满足自己的目的并解决自己的问题。您需要弄清楚自己的热情是什么,并通过代码进行追求。这将是一条漫长的路。当然,这并不容易。您将在某个时候遇到障碍,您只需要为他们做好准备,并且知道您会成功解决。
祝你好运!
https://medium.com/codex/what-is-the-best-programming-language-to-learn-as-a-beginner-50f6f967fc4b
文章出自:http://www.cnite.cn/it/new/202110514.html
㈨ 初学编程应该学习哪种编程语言
如果你想学习编程,虽然选择第一门编程语言与你想用它来做什么,最终达到什么目的有很大的关系,但是事实上某些编程语言的确比其他语言要好学。
选择一门合适的编程语言作为入门的语言对于培养自己编程的兴趣会有很大的帮助。
下面几种零基础小白入门的编程语言最佳候选名单。
1、Java
java是互联网历史最悠久、最坚挺和最具影响力的编程语言之一。你可以在线上线下、各种平台、操作系统和设备应用的核心部分发现Java的身影。它是一门极具特色的基于类、面向对象的编程语言,被设计为能够在尽可能多的平台上移植和运行。
出于这个原因,它也是世界上最流行的编程语言之一, 坚持首选Java作为第一门编程语言的学习者必须注意Java迫使你以程序员的方式思维一逻辑和分析式思考, 并且真正把握计算机是如何处理信息的才行。
学习Java可转向JavaEE分布式开发、大数据+人工智能、软件测试等等。
2、Python
当我们讨论第一门编程语言以及哪一门语言更加容易快速上手时,很容易会提到 Python。它是一种面向对象、解释型计算机程序设计语言。
Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是PythonC/C++)很轻松地联结在一起。
Python在设计上坚持了清晰划一的风格, 这使得Python成为一门易读、 易维护,并且被大量用户所欢迎的、用途广泛的语言。
学习Python可转向Python全栈+人工智能、网络安全、软件测试、云计算+信息安全等等。
3、C/C++
C++是C的自然演化,这两种语言大约分别起源于19世纪70年代和80年代早期。C语言是大学里面教的第一门编程语言,是一门使用非常广泛,通用的编程语言,它深远地影响了其后的几乎每一种语言。
关于C和C++的一件重要的事情是:它们都是计算机科学与编程最基础的语言。如果你学习它们,它们会使你获益,即使你之后并不去使用这两种语言,但它们会使你洞察计算机科学和计算机编程的起源和基础。
如果你不旨在专业的编程,这对你来仍然可以学习一下。 因为学过它们的人都会说学会了C/C++后,在学习其他语言就会变得很轻松。
学习C语言可转向智能物联网+嵌入式开发等等。
4、JavaScript
JavaScript通常我们会把它和Java相混淆,但是两者根本没有一点关系。
它是一门脚本语言,是Web的基础技术之一,但它也存在于浏览器之外。 随着服务器的强壮,虽然程序员更喜欢运行于服务嘴的脚木以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。
JavaScript比较容易学,使用浏览器即可运行,虽然它存在已经有一段时间了,但它正在迅速流行起来。学习JavaScript的成就感很高,因为你马上就可以做一些Web程序了,这是大部分人学习编程的原因。
学习JavaScript可转向Web开发、HTML5大前端等等。
在这特推荐去我们官网了解一下,看看我们的课程有没有感兴趣的!
希望能帮到你,望采纳~