程序员

程序员十个糟糕的行为

*爱你&永不变心* 提交于 2020-02-16 05:02:20
字号: 大 中 小 1) 情绪化的思维 如果你开始使用不同颜色的眼光来看待这个世界的话,那么你可能会成为一个很糟糕的程序员。情绪化的思维或态度很有可能会把自己变成一个怪物。相信你经常可以看到很多很糟糕的程序会使用下面的这些语句: 我的程序不可能有这种问题。 Java就是shit。 我最恨的就是使用UML做设计。 需求怎么老在变,没办干了。 受不了这些人,他们到底懂不懂啊。 …… …… 这些带着情绪化的思维和态度,不但可以让你成为一个很糟糕的程序员,甚至可以影响你的前途。因为,情绪化通常都是魔鬼,会让你做出错误的判断和决定,错误码率的判断和决定直接决定了你的人生。 2) 怀疑别人 糟糕的程序总是说:“我的代码一定是正确的,我怀疑编译器有问题”,“我这应该没有问题吧,STL库怎么这么难用啊”。我曾经见过有程序员这样使用 STL类:map<char*, char*>,当他发现这样放入字符串后却取不出来,觉得那是STL库的BUG,然后自己写了一个map!我的天啊! 某些时候,过早的下结论是一个很不好的习惯,任何事情都有其原因,只有知道了原因,你才能知道是谁的问题。一般来说,总是自己出的问题。 3) 过多关注实现,陷入问题细节 有些时候,当我们面对一个问题或是一个需求的时候,糟糕的程序员总是会马上去找一个解决方案或是实现,这是一个很不好的习惯。设计模式告诉我们,“喜欢接口,而不是实现

技术之路你并不孤单,我与你同行

大憨熊 提交于 2020-02-16 03:22:56
Java提供多线程机制,在并发时以多个线程来处理每个请求的方式完成请求和响应。然而,广大程序员在实际编程时会遇到各种各样的问题和疑惑,在面对这些疑难杂症时,有的同学通过百度或谷歌迅速精准的搜索到解决方法,然后大功告成,在紧张的工作节奏中完成了领导交代的任务,待下次又出现这类问题时,再次百度或谷歌,如果哪天断网你还无法解决问题了!?我想说的是,一定要真正的理解问题背后的原因,比如线程死锁,到底是为何?是不是锁粒度大,多个资源被一个锁控制;系统响应慢,线程大量阻塞,是程序的哪块性能没优化好?或者是IO的影响,如果是IO瓶颈,你能分析出是网络IO还是磁盘IO,你是否考虑异步或者React模式实现?是否使用线程池?线程池的参数设置是否合理?锁的同步代码块是否可以考虑锁消除或缩小同步块范围? Java对我们来说,已经发展20多年的历史,现在诞生大量的框架,SSH SpringCloud Dubbo Shiro等。其实大量框架的催生,本质上都是以Java核心的技术为基础做了扩展和外延,所以掌握基础知识再学起框架会理解更加深刻,也能走的更久远。 我们都知道并发编程,在大型互联网公司用的特别多,高并发高流量给程序员带来巨大挑战。当然这是个整体方案,而不光是程序员能单独解决的。没有服务器扩容,没有高带宽,没有分布式集群部署,程序员使出浑身解数也无可救药!站在程序员角度,我们应该从基础学起

为什么是程序员?

一世执手 提交于 2020-02-15 18:47:05
有前途 稳定的工作环境 不错的收入 能够在项目中不断提升自己的技能(ps:非技术上的认知也算) 找下家的时候能找到一份工资更高的工作 待遇问题,可能觉得外包工资高,但那只是表面的。在一家外包公司上班一般的待遇在10k-20k之间,为啥没有低于10k,一般要求都是不招没有经验的,至少是要求能干活的。如果高于20k,也是非常少的,干活的有拿20k的能力,一般也不会去外包公司,再高的话,外包公司本身就是赚差价的,不赚钱的生意,那就是要要亏本了。 外包公司有哪些优势? 放得很低阶的门槛,让教育背景、专业背景不够看的新人,有入行的机会。当刚入行或者刚毕业,还没有太多的项目经验时,在求职市场里是比较没有竞争力的;所以可以先去外包公司积累一些项目经验,1-2年之后,你再去跳槽,就跟当初刚入行时不可同日而语了。 丰富的业务场景,帮助新人快速地完成基础开发经验的积累,熟悉主流项目的全流程。 大厂镀金,一些自我包装精良的中小外包公司,常能接到诸如「微软」「腾讯」「阿里」「华为」的大单。而且顶级互联网公司,就那么几家,80%的程序员简历上都是些名不见经传的公司。所以到头来,跟大多数人比,程序员的核心竞争力还是看谁的项目经验牛逼点。 一些建议 ## 不建议做游戏类外包的岗位。游戏行业是加班的重灾区。 请搞定你的甲方PM, 他决定你的去留。一个项目组里有2个PM,一个你的直属PM和一个甲方PM。只要他喜欢你

it兼职以及行业门户网

左心房为你撑大大i 提交于 2020-02-15 15:48:48
程序员接私活的七大平台 https://www.jianshu.com/p/61a3fabe75fc 1、程序员客栈:程序员的经纪人 https://www.proginn.com/ 2、快码众包-让互联网产品开发更快速 https://www.kuai.ma/ 3、开源中国众包平台 oschina众包 https://zb.oschina.net/ 4、Coding 码市 - 云技术众包平台 https://coding.net/ coding除了是众包平台,还是代码托管平台 5、码易-高质量软件众包交付服务平台 https://www.mayigeek.com/ 6、人人开发 -让管理软件开发更容易 http://www.rrkf.com/ 7、开发邦-用技术支撑成长 http://www.kaifabang.com/ 8我推荐个任务栈 http://www.renwuzhan.top/ 不抽佣金,还可以自己联系客户,每天的任务也不少,app,网站开发,小程序,这些主流的开发项目 二、程序员常上的网站 给大家推荐程序员最常上的网站: 1. GitHub— 开发者最最最重要的网站:github.com这个不用多说了吧,是一个面向开源及私有软件项目的托管网站,上面有很多资源,需要就上去搜索,也有很多大牛的分享,可以学到很多知识,程序员必不可少的网站。 2

成为程序员之前,你需要知道这几点。

孤街浪徒 提交于 2020-02-15 08:51:01
1首先,程序员行业真的工资不错。我入职两年,薪资已经15k了,当然可能比不过大佬。 2然后,你需要有定力,这也是我经常给那些想要入行的人所说的第一个词。为啥,因为程序员的工作涉及到调试bug,而bug就跟人一样,有时根本琢磨不透。没有足够的定力,还没调试完一个bug,你自己先崩溃了。这还怎么当程序员。添加我的资料群号934623944。就可免费获取大量学习视频以及开发工具,学习方法。 3重中之重,终身学习。这也是我为什么劝诫大家要报好培训班的原因。你自学肯定有困难的,就不要勉强自己,节约点时间。但一定要学会掌握一套完善的学习方法。而开发知识更新的速度简直是大家有目共睹的,我们公司五年的程序员,跟我们工作在一起,感觉一年的经验都不到。因为好多新知识,他都不知道,写完接口,就坐在那里刷视屏,如果这样下来,是肯定会被淘汰的。 所以,如果你想成为一名程序员,你应该先找资料去自学,那么就证明你不太适合当程序员,如果你非要迎头往南墙上撞,那么后果可想而知。如果你想知道程序员行业的一些潜规则,或者找工作没有好的项目,可以找我聊一聊。添加我的资料群号934623944。就可免费获取大量学习视频以及开发工具,学习方法。我当年也是一个小白,四个月后找到了一份月薪10k的工作,比不上BAT大佬,但是好歹也能存点钱,对于一个山村里跑出来的人,这点钱还是能让你的生活提升一大截,起码买个新手机不用犹豫了。

程序的内存分配

北城以北 提交于 2020-02-15 07:14:06
本人收集整理!感觉非常经典,,与众人阅之! 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack):由编译器自动分配释放 ,站的特点是空间小但被CPU访问的速度快,使用户存放程序中临时创建的变量.由于桟的后进后出的特点,所以桟特别方便用来保存和恢复调用现场.用于存储占用空间长度不变并且占用空间小的数据类型的内存段,而相同类型的数据占用的空间是等长的,其操作方式类似于数据结构中的栈。 2、堆区(heap):它大小并不固定,可动态扩张或缩减.用于存放数据长度可变或内存占用较大的数据, 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区static):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 4、文字常量区:常量字符串就是放在这里的。 程序结束后由系统释放 5、程序代码区:代码区用来存放可执行文件的操作指令,(即二进制代码)也就是可执行程序内存中的镜像.代码段需要防止运行时被非法修改,所以只允许读取操作.如程序中的函数就存储在这段内存。 二、例子程序 这是一个前辈写的,非常详细 //main.cpp int a = 0; 全局初始化区 char

最牛B的编程套路

折月煮酒 提交于 2020-02-15 05:23:45
最近,我大量阅读了Steve Yegge的文章。其中有一篇叫“ Practicing Programming ”(练习编程),写成于2005年,读后令我惊讶不已: 与你所相信的恰恰相反,单纯地每天埋头于工作并不能算是真正意义上的锻炼——参加会议并不能锻炼你的人际交往能力;回复邮件并不能提高你的打字水平。你必须定期留出时间,集中锻炼,这样才能把事情做得更好。 我认识很多杰出的程序员——这是在亚马逊工作最好的额外“福利”之一。如果仔细观察他们,你会发现他们时时都在锻炼。他们已经很优秀了,但他们仍然不忘锻炼。他们锻炼的方法林林总总,而我在这篇文章中只会介绍其中的几种。 据我了解,这些杰出程序员之所以如此成功,就是因为他们一直在锻炼。完美的身材要靠定期的锻炼才能获得,而且必须坚持锻炼才能保持,否则身材就会走形。对于编程和软件工程来说,道理是一样的。 这是一个重要的区别——我每天都开车去上班,但我的驾驶水平远远不如专业车手;类似的情况,天天编程可能并不足以使你成为一名专业的程序员。那么,什么才能把一个普通人变成一名专业车手或者专业程序员呢?你需要锻炼什么呢? 答案就在《科学美国人》的一篇名为“The Expert Mind”(专家思维)的文章里: 爱立信提出,重要的并不是经验本身,而是“努力的学习”,也就是要不断地挑战自身能力之外的东西。一些狂热的爱好者花费了大量的时间去下棋

【学习】关于学习编程,大神们的一些建议(记录学习中)

戏子无情 提交于 2020-02-15 05:22:21
Steve Yegge - Practicing Programming 练习编程[译] 实践演练: 2015/7/17 14:54:47 . 写一份自己的简历。把自己所有的相关技能都罗列出来,然后把那些在100年后还用得到的标出来。给每个技能打分,满分为10分。 10分:语言能力(外语);生理和心理素质能力;自娱自乐能力; 09分:沟通能力;文档能力;逻辑能力; 08分:技术能力;自我管理能力; ect ... ... 罗列出你所景仰的程序员。尽量包括那些与你一起工作的人,因为你会在工作中从他们身上获取一些技能。记录下他们身上的1 ~ 2个闪光点,也就是你希望自己有所提高的方面。 查看维基百科上的“计算机科学”栏目,找到“计算机领域先驱者”这个分类,从这个列表中挑选一个人,阅读他的事迹,并且在阅读时打开任何你感兴趣的链接。 花20分钟通读别人的代码。读出色的代码和读糟糕的代码都是有益的,两者都要读,轮流切换。如果你无法感觉出它们之间的区别,可以求助于一位你尊敬的程序员,让他给你展示一下什么是出色的代码、什么是糟糕的代码。把你读过的代码给别人也看看,问问他们的看法。 罗列出你最喜欢的10个编程工具——那些你觉得你用得最多、非有不行的工具。随机挑选其中的一个工具,花一个小时去阅读它的文档。在这一个小时里,努力去学习这个工具的某个你不曾意识到的新功能,或者发现某种新的使用方法。 想一想

程序猿:围炉夜话

假装没事ソ 提交于 2020-02-14 13:57:09
HTML JavaScript CSS HTML 、JavaScript、 CSS是很么?一图看明白,懂了。 终极补丁 终极补丁,我打了最后一个补丁。完美!可以运行了…… 选择你的武器 C++、JAVA、Python、C 杀伤力有多大?选择你的编程武器吧 TCP与UDP的工作原理 TCP与UDP的工作原理的区别。秒懂~ 程序员:论google的重要性 当你刚开始程序员生涯时。 当你有10年经验后。 对程序员来说,google是多么的重要。 来源: https://www.cnblogs.com/IT-Evan/p/12304677.html