生 : 30岁,我的程序员梦想
作 者: redbridge (雪燃)
30岁,开始实现我的程序员梦,从一个编程爱好者,从一个业余的程序员,一个水平不高的程序员,一个半道出家的程序员
我的经历到这里就告一段落了,五年里跳了五次槽,不知道和大家比算不算多J,没有什么太多起伏,但我想很多朋友可能会和我有类似的经历,不知道能不能引起你们的共鸣。我想对我上面所说的话给一个总结:
1. 如果你觉得自己应该追求什么,不管遇到什么困难千万不要放弃,一定要坚持下去。
2. 不要因为自己年轻就找理由挥霍时间,少玩一点SC、CS、魔兽3、传奇、魔力或者……,多看点书,多练练题。
3. 如果你还是在校的学生,英语很差,专业课也很差。没关系,想怎么学计算机就怎么学计算机吧。其它地只要能混到毕业证就行了。除非你对自己的未来没有信心。(当然,如果你的理想不仅仅是要做一个程序员,那你别丢掉英语。)
4. 如果你不是科班出身,想要转行而不知该怎么开始的话,建议你先看两类书:(1)计算机原理;(2)数据结构和算法。(看数据结构之前先看C语言)。
5. 什么时候努力都不晚,关键是你明白要努力了,大器晚成总比一事无成要好的多。
6. Java、net、C++、PB、VB、Delphi、汇编到底应该学哪个?我的经验,哪个最简单就先学哪个、公司用哪个你就学哪个、哪个和你有缘(比如刚好你认识一个愿意帮助你的Delphi高手)你就学哪个,如果你都学,或者三天两头的换,我可以告诉你结果肯定是什么都不会,不要心浮气燥,他们都只是工具,学精一门其它的就相通了,重要的是掌握编程的思想。如果你问我面向对象(好像现在已经是面向需求了)、UML、WebLogic、WebService、软件工程、XML……应该怎么学呀,对不起,这些我也确实不是都会,但请相信,你先实实在在的写上十万行以上的代码以后,那些东西你自然就慢慢会了。
7. 不要以为程序员的工资都很高,程序员之间的水平差异也大。公司衡量一个人的待遇标准是他能给公司带来多大的效益。如果你体现了自己的价值,公司会主动给你加薪的,当然你也可以自己主动提,但一定要在你表现出了自己的价值之后。
8. 轻易不要跳槽,如果非要跳,也要保持工作经验上的延续,而不是从新开始,不然就会象我一样走很多弯路。
9. 如果你以为程序员都是熬夜熬出来的,那么你错了,因为它的代价就是缩短你的青春!大家不要象我一样,真的,熬夜一点也不好!记住老毛的话:如有恒,何须三更起,半夜眠;最怕莫,三天打鱼两天晒网,竹篮打水一场空!
10. 这一点是我觉得最精华的一点:“君子性非异也,善假于物也。”这句话的本意是一个水平很高的人本身并不一定很高明,关键是他善于利用别人的高明!我在这里做个借鉴,就是要充分利用自己身边的资源,不放过任何一个可以提高自己的机会。大家不要误会,这里的假于物可不是指抄袭别人的源代码,而是指通过学习别人的源代码把他的思想扩展到自己的思想里去。
注:上面的十大“精华”纯属我个人的“谬论”,您自己看着消化,有用的收下,没用的请拖入“回收站”。如果你觉得这些总结不过是一些浮华之词,那请你先问问自己:“是不是在行动上都真正做到了。”
这就是我,一个不算优秀,不算勤奋;玩能玩通宵,学也学能学通宵;对梦想的追求很执着;到了30才开始真正写程序;一个很平凡但又不甘于平凡的人……我的经历相信很多朋友都有过的,我现在也不能算是一个成功人士,但我相信我的经历却是值得大家借鉴的,因为我终究代表了一类人。
最后我还想说一点:现在很多朋友都抱怨中国的软件业环境太差,前途渺茫。确实是这样,我有同感。不过我想软件业不过是千万个行业中的一种,每一个行业总是会有起落的,中国的软件业环境差有她的历史原因,我们不要总是简单地和印度相比。抱怨没有意义,已经这样了,抱怨不能使她变好,希望我们每一个人多贡献一份自己的力量,总有一天她会变的比印度还好,甚至比美国还好。
最后:希望所有的程序员和拥有成为程序员梦想的朋友们在新的一年里心想事成,万事如意。请相信我:明天不一定更美好,但美好的一天一定会来!
应聘程序员,在技术面试的时候,结束时面试官通常会问一个问题:你还有什么问题吗?众所周知,面对这个问题不能直接说没问题了,因为这是你掰回一句或者加深认可的好机会。但是下面这4个问题在技术面试时最好不要问:
1、“我能拿多少工资?”
注意你参加的是技术面试,尽量不要问跟技术不相关的东西,这在技术面试的过程中是一个减分项。一般面试官如果对你有兴趣会主动地询问你的理想薪资。
2、“五险一金有没有?交通补助有没有?”
这个问题一般不建议去问,这些问题在技术面试后人事会主动告诉你或者自己主动去询问人事都可以的,但是在技术面试官面前,问这些跟他本职工作没有关系的问题会让面试官觉得不耐烦。
3、“公司经常加班吗?”
作为开发人员加班的情况肯定是会有的,只是经不经常可能得看公司的实际情况。在面试时问这个问题你可能只是想了解一下公司的加班情况,但却会让面试官质疑你的抗压能力,给面试留下不好的印象。
4、“您觉得我今天能面上吗?”
有些小伙伴可能急于求职,所以会有些迫切地问这个问题。如果面试官觉得你有希望肯定会给你一些信号,如果面试官不看好你,问这个问题可能让双方都比较尴尬。
上面说了4个不该问的问题, 那在面试官问“你还有什么问题吗?”时应该问一些什么问题?
再次点题,在技术面试最好提跟技术相关或跟本职工作相关的的问题。第一,可以问一下关于产品的问题,比如一下产品用的什么技术,想回去了解一下,或者关于一些新的技术比如大数据、spring boot公司是怎么用的。这些问题既能让面试官有兴趣回答,又能展现你的知识面。
随着互联网的不断发展,java开发成为了众多开发工程师使用的主流编程开发语言。今天,java课程培训机构就一起来了解一下,在java程序员面试过程中,有哪些比较常见的技术面试问题需要我们了解。
1、什么是线程
线程是 *** 作系统能够进行运算调度的小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。
2、线程和进程有什么区别
线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。每个线程都拥有单独的栈内存用来存储本地数据。
3、如何在Java中实现线程
两种方式:javalangThread类的实例就是一个线程但是它需要调用javalangRunnable接口来执行,由于线程类本身就是调用的Runnable接口所以你可以继承javalangThread类或者直接调用Runnable接口来重写run()方法实现线程。
4、有哪些不同的线程生命周期
当我们在Java程序中新建一个线程时,它的状态是New。当我们调用线程的start()方法时,状态被改变为Runnable。线程调度器会为Runnable线程池中的线程分配CPU时间并且讲它们的状态改变为Running。其他的线程状态还有Waiting,Blocked和Dead。
5、你对线程优先级的理解是什么
每一个线程都是有优先级的,一般来说,高优先级的线程在运行时会具有优先权,但这依赖于线程调度的实现,这个实现是和 *** 作系统相关的(OSdependent)。我们可以定义线程的优先级,但是这并不能保证高优先级的线程会在低优先级的线程前执行。线程优先级是一个int变量(从1-10),1代表低优先级,10代表高优先级。
6、什么是死锁(Deadlock)如何分析和避免死锁
死锁是指两个以上的线程永远阻塞的情况,这种情况产生至少需要两个以上的线程和两个以上的资源。
分析死锁,我们需要查看Java应用程序的线程转储。我们需要找出那些状态为BLOCKED的线程和他们等待的资源。每个资源都有一个唯一的id,用这个id我们可以找出哪些线程已经拥有了它的对象锁。
编程对于很多人来说,还是比较好上手的。当你学会了一门语言,可以编写一些程序了,很快就会遇到一道坎,并发编程,单线程下好好跑着的程序,怎么就运行异常了?怎么就得不到期望的结果。在面试中,并发编程也是经常出现,我们今天来讨论一个问题, 并发编程,容易出哪些问题?
相信大家在学习并发编程的时候,都会遇到这样一个经典问题,有一个函数,执行i=i+1,执行1000遍。在单线程的环境下,得到的结果都是预期的1000。如果是两个线程同时运行,那么,得到的结果可能是2000,也有可能小于2000。
这是因为i=i+1不是一个原子 *** 作,我们会获取i的值,然后执行一次加法运算,最后将结果赋值给i。当多个线程执行的时候,获取到的i的值之后,在执行后面的动作之前,另外一个线程已经修改了i,造成最终的结果小于2000。
并发编程的时候,我们往往无法确定多个线程之间的执行顺序,经常我们会出现这样一个错误。我们在一个线程中使用的变量,会在另外一个线程中进行初始化或者赋值。最常见的,便是我们在主线程上创建一个子线程,然后再进行变量的初始化,子线程的执行可能早于父线程,造成程序错误。
为了解决并发问题,我们通常会引入锁、信号、信号量等手段来保证临界区只会被一个线程访问,或者让一个线程等待另外一个线程执行完成。但是,引入锁之后,我们又可能会出现死锁的问题,例如:线程1与线程2都需要抢占AB两把锁,假设线程1先抢占了A锁,线程2抢占了B锁,这个时候,线程1在等待B锁,线程2在等待A锁,就这样,等到海枯石烂,我们称之为死锁。
出现死锁,需要同时满足下面几个条件:1线程需要对需要的资源进行互斥访问(例如一个线程抢到锁)2持有并等待(例如一个线程抢到了A锁,然后在等待B锁)3非抢占(线程抢到了锁之后,不能被其他线程抢到)4循环等待,线程之前存在一个环路。
那么,如何解决死锁的问题呢?既然出现死锁需要同时满足上面的几个条件,那么,我们只要破坏其中一个条件,就能够避免死锁问题。
今天,我们了解到并发编程带来的问题与解决方案,希望对你在平时的工作或者面试有所帮助。
程序员的成功面试技巧
程序员的成功面试技巧,程序员在近几年来是很热门的一个职位,因为在很多人眼里程序员的收入是很高的,程序员想要工资高在面试的时候也是很讲究技巧的,下面分享程序员的成功面试技巧?
程序员的成功面试技巧11、给自己写一份非常专业的简历
我的建议是,如果你想增加自己的入选机会,那最好还是花点钱制作一份专业的简历。相较于你将来可能得到的巨大收获,这真的只是一个小小的投资。
2、研究面试官
当我联系程序员来面试的时候,我总是会事先发电子邮件给他,并附上我的名字和博客地址。但是让我惊讶的是,当我给他面试的时候,他竟然对我还是一无所知。
再举个正面的例子,我在面试时也碰到过这类开发人员,甚至能对我以前写的一篇博客或者做的教学视频上面的内容侃侃而谈。
你说我会推荐哪个
面试官也是人,也会有人性的弱点和特点。Dale Carnegie曾说过,要让别人对你感兴趣,最简单的方法就是你先表达出对对方的兴趣。
不管这种方法是否有欠公正,但是如果你想面试成功,那么我建议你事先最好先好好研究一下你应聘的这家公司和面试官(如果知道的话)。
当今社会的信息是如此的发达,我们完全可以在Facebook、Twitter、微博、博客上找到任何人的资料。即使你只是大致浏览一番,也会让你受益良多。
3、获得内部推荐
知道找工作最简单的方法是什么吗那就是获得内部推荐。
这不但可以增加面试机会,还能提升40%的录用几率。
前阵子,我找到了一家心仪的公司。然后直接投简历NONO,猜猜我是怎么做的吧
首先我找到一名和我有共同想法和意见的开发人员,然后开始关注他的博客。
接着我在他的博客中留言、发表建议,并且表现出对他的工作和公司非常感兴趣的想法。最后我成功拿到了这个宝贵的内部推荐资格。
很多程序员会说,“可是,某某某公司里面的人我一个也不认识啊”。如果你想就此放弃,那当我什么也没说,如果你愿意试试,我敢打赌,你总能想出一种方法达到你的目的。
不过这有个秘诀,那就是首先你得在网上创建自己的“名片”——让别人有了解你的机会,所以do it now吧。
4、 学会解决算法问题
这是每一个开发人员都应该具备的重要技能,而且真要掌握起来也并非那么难。
在很多面试中,都会有这样的问题,要求你在白板或者电脑上解决编程问题,但是许多程序员,即使是那些非常优秀的程序员,都会一下子大脑一片空白,完全理不出思路来。
如果你能花时间学会如何解决这种类型的面试问题,那么下次再碰到这种场景,就不会这么紧张了。
我们会紧张其实和怯场无关,主要是因为我们不熟悉这些问题,也没有自信能解决这种问题。
在这方面建立起自信之后,你就再也不会紧张了。
5、活力洋溢地回答问题
只用一个字或者一句话,照本宣科平平无奇地回答问题,或许在技术上是正确的,但是你忘了应该借此机会好好展示自己的激情——这才是一个开发人员能带给团队的最大正能量。
举个例子说,如果我问你什么是多态性,我不是要你按照课本中的定义重复给我听,我希望你能就这个主题阐述一下,然后我们可以更深入地聊一聊。
6、小心“陷阱”问题
你为什么换工作
说说你最大的优点和缺点。
最近一次你是如何解决和同事之间发生的技术分歧的
在回答问题之前,你最好明白面试官问这些问题的目的,掌握如何回答这类问题的技巧。
就先说说第一个问题吧“你为什么换工作”
在大多数情况下,面试官想知道的是你是否是一个爱说三道四、惯于诽谤抨击雇主的人。所以千万不要上当。
7、永远不要撒谎
最糟糕的事就是在面试的时候撒谎。
知之为知之,不知为不知,如果你确实不知道,千万不要自作聪明来编造问题的答案。
相反,你应该诚实地说,你不知道或者你并不是100%肯定,但是你愿意尝试一下,然后再讲讲自己的想法。讲完之后也可以问面试官正确答案是什么,以显示你对此非常感兴趣。
实话告诉你,大多数面试官问的问题都是他们知道的问题,不然如果你滥竽充数给你通过的话就会显得他们像个傻瓜。所以千万不要抱着侥幸心理,一旦发现你在撒谎,面试官马上就会质疑你的人品。
8、不要太诚实
很多程序员会过多地透露自己的信息,不要以为诚实和完全透明就是最好的政策,殊不知过犹不及。
第7条所说的不可撒谎诚然不错,但是我们也没必要将自己所有生活的细节和所有缺点都告诉给面试官。
有个性是好的,但是如果暴露了性格缺陷就坏事了。
试想一下,要是你说自己喜欢赌博或者沉迷于魔兽世界,我敢打赌,面试官肯定会重新审视你。所以在说自己信息的时候一定要慎重,因为这不但会暴露你的缺陷,还会显得你缺乏应有的判断力。
9、掌握计算机科学的基础知识
是的,很多程序员在面试的时候,甚至理直气壮地说,他们不知道链表和堆栈,因为他们没有受到正规教育或者早就还给老师了。
我也承认我们在工作的时候是用不到那些深层次的计算机科学概念的,但是作为一个专业的软件开发人员,你至少应该知道一些基本知识。
举个例子说吧,你请电工来重新给你家的房子布线,但是这电工一点也不知道任何电气工程的基本知识,你还请他干不同理,我们也是如此。
10、关于经验
这是最后一点,但并非最不重要的,很多开发人员,特别是刚进入这一行的新手,往往缺乏相关的经验,也不知道如何增加所谓的工作经验。
这有点像是鸡和蛋哪个先出现的问题。
那么又该如何增加经验呢
关键是要用创造性的方式。有很多方法都可以获得工作经验,但是却不必真正去一家公司上班。
给你点提示:
参加开源项目
启动开源项目
做一个移动app,放到App Store里
写一个小型的Web应用程序
参与代码交流和用户组
这些方式都可以作为工作经验写到简历中去,只要自己有想法,不愁没经验。
希望这些技巧能对各位有所裨益。如有不同想法,也请不吝赐教。
程序员的成功面试技巧2程序员的中年危机是什么
中年程序员危机
近日,中兴网信员工欧某打开26楼办公室窗户纵身跃下,结束了42岁的生命。
目前有多种说法,有说因股份转让价过低和人事部产生分歧,有说疑因内部宫斗被离职,甚至还有消息说欧有精神方面的问题。
尽管具体原因仍待进一步的核实,但却由此引发网上一波关于中年职场危机,特别是中年程序员危机的讨论。
一般来说,一个行业的收缩导致人员数量与结构的调整,大致可以用一个简单的模型来描述:行业规模缩减,行业人员减少,公司数量减少或规模缩减,进而导致管理层岗位变少,原本的管理层,被迫降至转入下一级岗位。
这种降岗机制层层传递,高层降为中层,中层降为基础管理岗,基础管理岗降为一线员工。与此同时,由于行业规模的缩减,一线员工数量也在减少。
于是,一线员工失业,同时,停止招收该行业的新毕业生。在这个模型中,一般来说,即便行业收缩,中层也不用愁就业,仍可留在本行业中,最坏也不过是降岗。
中年人学习能力下降明显
不过,在程序员行业中,有一些特别的因素,导致了其不同于一般行业的现象。
35-45岁的中年人,学习能力下降明显。与此同时,这是一个新技术不断涌现的时代。
一个人进入职场初期的技能、概念,过了20年后,已经完全不一样了。程序员这个行业,更是把这个特点发挥到极致。
此外,精力明显下降,不能熬夜,加之家务琐事缠身,高强度工作即便有意愿也很难付诸行动。
如果说其他行业的中层人员降级后仍可游刃有余的话,这个行业的中层降岗后,会不如自己新岗位上的同事。
所以,程序员密集的IT、通讯行业,很多中层员工就处于一个很尴尬的地位。即便勉为其难地接受,也会面临收入大幅度下降的心理适应问题。
如果考虑到资产配置中较高的按揭比例,当资金链断掉,这就成为不可承受之重。
面试的话就先介绍自己的具体情况,比如名字,有什么特长,学习和社会经历,取得过什么成就,对本工作有什么心得体会,对未来有什么计划,对本公司有什么看法等等。最重要的是自我介绍时要自信,说话清晰,有条理,别紧张。先写个草稿,自己多练习一下。工作主要还是看能力,介绍尽量精炼,不啰嗦。
以上就是关于java程序员面试问题,你在项目中遇到什么困难,你是怎么解决的,说简单了又不像,有哪些复杂的困难,解决全部的内容,包括:java程序员面试问题,你在项目中遇到什么困难,你是怎么解决的,说简单了又不像,有哪些复杂的困难,解决、程序员技术面试中,当面试官问“你还有什么问题”,应该怎么回答、java编程程序员技术面试常见面试等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)