当前位置:编程学习 > C#/ASP.NET >>

各位用.NET为主的朋友,你们的C,C++,数据结构,算法基础,水平怎样呢?面试时遇到过这方面的笔试?如何应对呢?

--------------------编程问答-------------------- 因为培训班很少培训C++,所以先来一轮淘汰下青鸟黑马蓝翔。 --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
因为培训班很少培训C++,所以先来一轮淘汰下青鸟黑马蓝翔。


难道真是这个初衷?~~


也伤了大专生~~我们的课程也没有c++..数据结构。。。
后来只上过一些算法设计选修课而已。

而在平时的项目使用中,很少用到,也就没怎么去关注。。。 --------------------编程问答--------------------
引用 2 楼 u011321421 的回复:
Quote: 引用 1 楼 caozhy 的回复:

因为培训班很少培训C++,所以先来一轮淘汰下青鸟黑马蓝翔。


难道真是这个初衷?~~


也伤了大专生~~我们的课程也没有c++..数据结构。。。
后来只上过一些算法设计选修课而已。

而在平时的项目使用中,很少用到,也就没怎么去关注。。。

这些基础知识很少直接用到,但是对于合格的程序员它们本身应该是手到擒来的。 --------------------编程问答-------------------- 所谓“忘记”,说明你学的时候就没有搞懂过,只是强记了一些皮毛。
你说数据结构学了怎么能忘记呢? --------------------编程问答--------------------
引用 4 楼 caozhy 的回复:
所谓“忘记”,说明你学的时候就没有搞懂过,只是强记了一些皮毛。
你说数据结构学了怎么能忘记呢?


嗯嗯,你教训得对!
另外,我想知道是不是很多面试的笔试都是要考这些的呢?

还是一些比较大点的公司才考,
而小公司是直接考你业务,功能实现? --------------------编程问答-------------------- 有前途,真正招人才的公司肯定会对你的学习能力,研究能力,发展能力有一定的期待。
没前途,找点临时工的公司反正无所谓,他们看中的是你能不能在短期内能糊出个程序。 --------------------编程问答--------------------
引用 2 楼 u011321421 的回复:
Quote: 引用 1 楼 caozhy 的回复:

因为培训班很少培训C++,所以先来一轮淘汰下青鸟黑马蓝翔。


难道真是这个初衷?~~


也伤了大专生~~我们的课程也没有c++..数据结构。。。
后来只上过一些算法设计选修课而已。

而在平时的项目使用中,很少用到,也就没怎么去关注。。。


如果说伤了你这样的,无论大专也好培训班也好,总之就是基本的数据结构都不懂的人,那我觉得这家企业是英明的。

我觉得,首先你是个程序员,其次你才是.Net程序员。
作为一个程序员,问你这些基本的数据结构知识,并不过分。

你看我,虽说我也是.Net程序员,但我懂基本数据结构和算法,懂一点单片机,能用C写一点Linux上的和DSP、AVR上的应用程序,做过大型网站的系统架构,开发过WinCE平台的自动化测试框架,做过分布式、云计算,做过数据库调优,熟悉Scrum,做过Scrum master,懂ALM(Application Lifecycle Management),懂DO-178B,获得过六西格玛绿带认证,英文熟练,能在电话里和美国人、印度人探讨技术与业务方面的问题。今天我是.Net程序员,明天如果项目需要,我也可以是数据库程序员、C/C++程序员。因为我是真正的程序员,无论.Net,还是C++,那些都只是我的工具,我从来不受工具的限制,什么工具好用我就用什么工具。
--------------------编程问答-------------------- 其实大专也好培训班也好,这个不是重点,重点是你本人的基础扎实不扎实。

如果单纯讲学过什么课程,那我可能比你差远了,至少你还学过计算机专业的课程,我可没有在大学里学过这些课,我又不是计算机系的。我上大学那会儿也学过编程课,但我们那会儿学的是FORTRAN 77,一门非常古老的编程语言,估计你都没有听说过,而且现在FORTRAN 77也早就被淘汰了。你们大学里好歹学过SQL Server、Oracle、MySQL吧,我们那会儿连Access都没学过,我们学的是Foxbase和Foxpro。你们现在上大学的时候好歹还听说过Linux吧,我们那会儿,大学里用的是VAX小型机,上面跑的是VMS操作系统,当年我也是兴趣盎然地钻研过那个操作系统,还拿FORTRAN 77在上面编写过向终端发送电子邮件的程序,但是VMS这种操作系统出了校门我再也没有用过了。除了VMS,整个大学期间我们用的操作系统基本上是DOS,到我毕业的那一年,学校的机器才升级到Windows NT 4.0。然后一个偶然的机会我见到了SQL Server 6.5,估计你们谁也没见过这么老的版本的SQL Server吧,那会儿的SQL Server基本上还没有脱掉Sybase的影子,跟现在的SQL Server简直大相径庭。


至于C、C++、T-SQL、PL/SQL、C#、HTML4/5、javascript、CSS、socket、pthread、linux、SOA、REST、TCP/IP、RTOS...

这些东西全都是出了校门以后才知道的,一点一点地买书自学。
工作了十几年,也自学了十几年,十几年来买的书,摞起来,能摆满整整一面墙,蔚为壮观。

虽然咱不是计算机专业出身的,但既然干了程序员这个职业,就没理由给自己找借口,一个专业的程序员都要会哪些东西,我就必须也会这些东西。否则,怎好意思自称程序员?

越是基础的东西,反而越没有什么理由说“我忘记了”。知道就是知道,不知道就是不知道。
相反,越是浮于表面的东西,就算真的忘记了也没啥不好意思,比如说一个API怎么用,忘记了没关系,查MSDN就对了。

甚至有些应用层面的技术,现学又有什么关系?当年在去微软做.Net开发之前,我只有C++的基础,面试的时候答题我也全是拿C++答的,我也很好奇为啥得到offer以后居然指派我去做一个.Net项目。但是我的经理对我很有信心,给了我一本《C#高级编程》,让我花一周的时间学会它。在那一周里面我还有很多别的东西要学,比如尽快熟悉公司内的环境,包括那些从来没有见过的工具,版本控制、bug提交与问题跟踪、代码审核流程。。。全英文的环境,当年从来没有在外企待过的我,只能硬着头皮赶鸭子上架。

事实证明我们经理是完全正确的,那东西真的可以在一周之内学会,前提是你的基础知识比较扎实。实际上在第四天的时候我已经开始正式提交代码了,而且提交的代码也通过了微软那些大牛们的代码审查(code review),像一股新鲜的血液,流进了微软庞大的代码库,成为了微软的伟大产品的一部分了。

在接下来的几个月内,每天都提交代码,每天都被别人review,有一次花了一个星期时间提交了上千行代码,然后收到了70多个code review的comments,每一条comments都言之有理,我都细心地读它们,然后对代码的问题一一纠正。再到后来,在收到的comments中,批评越来越少,赞许越来越多;再到后来,我也开始在review别人的代码的时候,给别人提意见,然后也收到了别人在邮件里热情洋溢的回复,感谢我指出代码中的错误。

我就是这样走上了.Net开发的道路。自我感觉有点跌跌撞撞,但也乐在其中。总之这不是一个多么难的东西,但想要深钻也需要花费无穷无尽的精力。对于.Net开发,到此我可以自豪地讲,我已经“上道”了。

越是应用层面的知识,越可以现查、现问、现学。
而越是基础层面的知识,你越无法临时抱佛脚,如果基础不牢靠,你可能根本都不知道自己要往哪个方面去努力才能解决当下的问题。这时候你就能真正体会到,基础知识的重要性。

我记得我解决过一些很有趣的问题。

有一次我业余时间做一个自动避障小车,那是我自学单片机后做的第一个作品。后来发现,每次小车在受到撞击后,总是自动向后跑,但我程序里面并没有设置这个逻辑。当时手头也没有示波器、逻辑分析仪这样的东西,只有一个万用表,那时候我还经常用一个土办法来验证某个引脚是高电平还是低电平,就是用发光二极管来验证,呵呵。后来居然分析出原因来了,是电路中某个焊点虚焊,导致受到撞击后单片机收到了一个错误的信号,而这个信号恰好被解析成了一条后退指令。重新焊接后问题解决。你看,这就是我全靠那点有限的基础知识排除的一个硬件故障。

还有一次,就是前几天,其实这种事情遇到的次数还挺多的。我在做一个航空项目,我们有一个设备,远在美国,我不可能在设备旁边调试。而且这个设备运行着一个军方自己写的嵌入式实时操作系统,名字我就不说了。这个操作系统缺乏好的开发环境,也没有gdb这样好用的debugger。而且代码每更改一次,需要上传到服务器上,服务器会自动进行编译,代码量很大,编译一次要5个多小时,然后你才能看到结果。如果你一次代码没有提交对,下次再提交,你至少额外增加了5个小时的时间花费。就是在这种条件下,我分析设备传回来的数据,虽然它完全是乱掉的,但从中也能渐渐分析出一些规律,进而分析出它在一些指针的处理上似乎总在犯某方面的错误,正是这样的错误使它表现出来的行为完全不是我们所期望的。我在PC上纠正它的C语言源代码,PC和那台设备的CPU完全不是同一个体系,虽然我在PC上写程序,但我必须时刻提醒自己它在设备上运行的时候应该是什么样子。然后提交了代码,一次性通过,服务器编译了5个小时后没有爆出编译错误,而且设备的行为也马上恢复了正常。全靠基础知识掌握得牢靠,否则,来来回回改错误是必不可少的。



所以,基础知识掌握得有多扎实,决定了你在技术道路上能够走得多远。


--------------------编程问答-------------------- SQL Server 6.5我还真有。是Windows NT 4.0 Option Pack带的。而NT Option Pack则是Visual Studio 6.0附送的。 --------------------编程问答-------------------- 估计XinYaping大叔工作的时候,我还在小学里面瞎玩。我家的第一台计算机是Intel 386SX 25MHz + 2MB内存 + 80MB硬盘,后来换了一个270MB的。装了DOS 6.0 自带QBasic, Turbo C++ 3.0, True BASIC, UCDOS 3.0 自带WPS 2.1,Tango,QEdit,PCTools,应该这些软件都是盗版吧,这就是我用的全部软件了。不过很快我就用上了 386DX 40MHz,我不知道按下Turbo是不是超频的意思,反正比原先的那个快了不少。 --------------------编程问答-------------------- 老曹,其实我可能比你大不了太多。

不过,我第一次知道386,是在高二的时候。那时候我们班上只有一个同学家里有电脑,那个同学家里经济条件很好,大家都很羡慕。后来听他说他新买的电脑是当时的顶级配置,386。嘎嘎,牛B闪闪的386,听说要一万多块钱才能配这么一套。小伙伴们更加羡慕了。那时候对电脑的认识都只是在电视上看到,印象里都是些科学家才能用到这玩意儿,电视电影里面那些人都穿着白大褂,在专门的电脑房里面操纵着电脑,而且背景画面往往是一排磁带机,像一个大大的柜子一样摆在电脑旁边,以彰显这台电脑里面正在运行着宝贵的、海量的科研数据。

后来从图书馆里借到一本介绍电子计算机的书,上面画了一张键盘的图。于是就把这张图按比例放大,自己画了一张,怕落灰,压在玻璃板下面,然后在上面练指法,但真正摸到电脑还是在上大学后了。

--------------------编程问答-------------------- 上大学后,那会儿大家已经开始用奔腾了。不过我自己拥有的第一台电脑,却是一台比286级别的电脑。
那会儿我自告奋勇地加入了学校的图书社,并且义务地替他人值班。其实我的真实目的是,图书社的仓库里,有一台非常旧的电脑,我记得,在按下Turbo键的情况下,它能跑到16MHz。16MHz,哈哈,现在我手头的8位单片机也不止这么点主频。其他的配置,它的显示器,只有9寸,黑白的,年代太久,亮度比较低,调到最大亮度才能正常使用。硬盘是47M,内存我记得不太清楚,有几百K吧。整个大学期间这台电脑都被我霸占着。

在这台电脑上我自学了Basic,然后编了一套图书借阅系统,当时为了实现图形界面还特意学习了DOS中断。我那时候的好朋友,帮我写了一套在图形界面上显示汉字的程序库,他用到了汇编,还用到了显卡的直接写屏技术,后来我那个好朋友毕业后去网络安全公司写杀毒程序去了。

在这样的一台配置很低的电脑上写程序,其实是很有好处的。现在大家的电脑都很快,代码写得烂一点自己都没感觉。但是在那台电脑上,代码写得不好的话,马上就会感觉到运行时间成倍地上升。

--------------------编程问答--------------------
引用 12 楼 XinYaping 的回复:
上大学后,那会儿大家已经开始用奔腾了。不过我自己拥有的第一台电脑,却是一台比286级别的电脑。
那会儿我自告奋勇地加入了学校的图书社,并且义务地替他人值班。其实我的真实目的是,图书社的仓库里,有一台非常旧的电脑,我记得,在按下Turbo键的情况下,它能跑到16MHz。16MHz,哈哈,现在我手头的8位单片机也不止这么点主频。其他的配置,它的显示器,只有9寸,黑白的,年代太久,亮度比较低,调到最大亮度才能正常使用。硬盘是47M,内存我记得不太清楚,有几百K吧。整个大学期间这台电脑都被我霸占着。

在这台电脑上我自学了Basic,然后编了一套图书借阅系统,当时为了实现图形界面还特意学习了DOS中断。我那时候的好朋友,帮我写了一套在图形界面上显示汉字的程序库,他用到了汇编,还用到了显卡的直接写屏技术,后来我那个好朋友毕业后去网络安全公司写杀毒程序去了。

在这样的一台配置很低的电脑上写程序,其实是很有好处的。现在大家的电脑都很快,代码写得烂一点自己都没感觉。但是在那台电脑上,代码写得不好的话,马上就会感觉到运行时间成倍地上升。


我的教材上说,鸡兔同笼问题,三层100次的循环,共100万次,Apple II(6502 8bit CPU)需要5个小时,不过是ROM BASIC或者Apple BASIC。我的386相同程序在QBasic上解释执行,运行14分钟,没有按Turbo。相同的软件环境和程序,在Pentium II 266MHz上运行是7秒钟。386典型地,运行一条指令大约是4~8个时钟,我们算6个。Pentium II三发射,因为是乱序执行,利用率相当高,一个时钟执行3条指令,因此PII同频率快20倍。PII比386快了120倍,算出来386频率应该是266/6=44.33。而我的386标称是40MHz,基本吻合,因此我觉得按下Turbo应该是超频了。话说Apple II是50万次,而386 40MHz = 4千万/6大约是660万,快13倍。而程序快了20多倍,这说明QB的效率还是比Apple的要高。顺便说下,相同的程序,用Visual Basic编写,运行时间,在PII 266上是1.45秒。因此VB编译执行的效率是QB的5倍(当然,VB是32bit的,不可同日而语)。 --------------------编程问答-------------------- 可惜我的386坏了,好像给我家人扔了,硬盘倒是还在。我现在最老的电脑是Cx486 66MHz。安装一次Windows 95都要一个多小时。 --------------------编程问答--------------------
引用 8 楼 XinYaping 的回复:
其实大专也好培训班也好,这个不是重点,重点是你本人的基础扎实不扎实。

如果单纯讲学过什么课程,那我可能比你差远了,至少你还学过计算机专业的课程,我可没有在大学里学过这些课,我又不是计算机系的。我上大学那会儿也学过编程课,但我们那会儿学的是FORTRAN 77,一门非常古老的编程语言,估计你都没有听说过,而且现在FORTRAN 77也早就被淘汰了。你们大学里好歹学过SQL Server、Oracle、MySQL吧,我们那会儿连Access都没学过,我们学的是Foxbase和Foxpro。你们现在上大学的时候好歹还听说过Linux吧,我们那会儿,大学里用的是VAX小型机,上面跑的是VMS操作系统,当年我也是兴趣盎然地钻研过那个操作系统,还拿FORTRAN 77在上面编写过向终端发送电子邮件的程序,但是VMS这种操作系统出了校门我再也没有用过了。除了VMS,整个大学期间我们用的操作系统基本上是DOS,到我毕业的那一年,学校的机器才升级到Windows NT 4.0。然后一个偶然的机会我见到了SQL Server 6.5,估计你们谁也没见过这么老的版本的SQL Server吧,那会儿的SQL Server基本上还没有脱掉Sybase的影子,跟现在的SQL Server简直大相径庭。


至于C、C++、T-SQL、PL/SQL、C#、HTML4/5、javascript、CSS、socket、pthread、linux、SOA、REST、TCP/IP、RTOS...

这些东西全都是出了校门以后才知道的,一点一点地买书自学。
工作了十几年,也自学了十几年,十几年来买的书,摞起来,能摆满整整一面墙,蔚为壮观。

虽然咱不是计算机专业出身的,但既然干了程序员这个职业,就没理由给自己找借口,一个专业的程序员都要会哪些东西,我就必须也会这些东西。否则,怎好意思自称程序员?

越是基础的东西,反而越没有什么理由说“我忘记了”。知道就是知道,不知道就是不知道。
相反,越是浮于表面的东西,就算真的忘记了也没啥不好意思,比如说一个API怎么用,忘记了没关系,查MSDN就对了。

甚至有些应用层面的技术,现学又有什么关系?当年在去微软做.Net开发之前,我只有C++的基础,面试的时候答题我也全是拿C++答的,我也很好奇为啥得到offer以后居然指派我去做一个.Net项目。但是我的经理对我很有信心,给了我一本《C#高级编程》,让我花一周的时间学会它。在那一周里面我还有很多别的东西要学,比如尽快熟悉公司内的环境,包括那些从来没有见过的工具,版本控制、bug提交与问题跟踪、代码审核流程。。。全英文的环境,当年从来没有在外企待过的我,只能硬着头皮赶鸭子上架。

事实证明我们经理是完全正确的,那东西真的可以在一周之内学会,前提是你的基础知识比较扎实。实际上在第四天的时候我已经开始正式提交代码了,而且提交的代码也通过了微软那些大牛们的代码审查(code review),像一股新鲜的血液,流进了微软庞大的代码库,成为了微软的伟大产品的一部分了。

在接下来的几个月内,每天都提交代码,每天都被别人review,有一次花了一个星期时间提交了上千行代码,然后收到了70多个code review的comments,每一条comments都言之有理,我都细心地读它们,然后对代码的问题一一纠正。再到后来,在收到的comments中,批评越来越少,赞许越来越多;再到后来,我也开始在review别人的代码的时候,给别人提意见,然后也收到了别人在邮件里热情洋溢的回复,感谢我指出代码中的错误。

我就是这样走上了.Net开发的道路。自我感觉有点跌跌撞撞,但也乐在其中。总之这不是一个多么难的东西,但想要深钻也需要花费无穷无尽的精力。对于.Net开发,到此我可以自豪地讲,我已经“上道”了。

越是应用层面的知识,越可以现查、现问、现学。
而越是基础层面的知识,你越无法临时抱佛脚,如果基础不牢靠,你可能根本都不知道自己要往哪个方面去努力才能解决当下的问题。这时候你就能真正体会到,基础知识的重要性。

我记得我解决过一些很有趣的问题。

有一次我业余时间做一个自动避障小车,那是我自学单片机后做的第一个作品。后来发现,每次小车在受到撞击后,总是自动向后跑,但我程序里面并没有设置这个逻辑。当时手头也没有示波器、逻辑分析仪这样的东西,只有一个万用表,那时候我还经常用一个土办法来验证某个引脚是高电平还是低电平,就是用发光二极管来验证,呵呵。后来居然分析出原因来了,是电路中某个焊点虚焊,导致受到撞击后单片机收到了一个错误的信号,而这个信号恰好被解析成了一条后退指令。重新焊接后问题解决。你看,这就是我全靠那点有限的基础知识排除的一个硬件故障。

还有一次,就是前几天,其实这种事情遇到的次数还挺多的。我在做一个航空项目,我们有一个设备,远在美国,我不可能在设备旁边调试。而且这个设备运行着一个军方自己写的嵌入式实时操作系统,名字我就不说了。这个操作系统缺乏好的开发环境,也没有gdb这样好用的debugger。而且代码每更改一次,需要上传到服务器上,服务器会自动进行编译,代码量很大,编译一次要5个多小时,然后你才能看到结果。如果你一次代码没有提交对,下次再提交,你至少额外增加了5个小时的时间花费。就是在这种条件下,我分析设备传回来的数据,虽然它完全是乱掉的,但从中也能渐渐分析出一些规律,进而分析出它在一些指针的处理上似乎总在犯某方面的错误,正是这样的错误使它表现出来的行为完全不是我们所期望的。我在PC上纠正它的C语言源代码,PC和那台设备的CPU完全不是同一个体系,虽然我在PC上写程序,但我必须时刻提醒自己它在设备上运行的时候应该是什么样子。然后提交了代码,一次性通过,服务器编译了5个小时后没有爆出编译错误,而且设备的行为也马上恢复了正常。全靠基础知识掌握得牢靠,否则,来来回回改错误是必不可少的。



所以,基础知识掌握得有多扎实,决定了你在技术道路上能够走得多远。


谢谢你分享技术成长经历!
在大学之前,我完全不知道编程是怎么一回事,
也就是冲着中学时对计算机感兴趣就报了计算机系。

也许是因为习惯了学校所安排的课程体系...导致我忽略了基础性的东西,
很多东西也只是学了应用层的。

那请问你能为我提一些建议么?
是把那些基础补回来,还是继续学好高层的东西。
你的观点应该是偏向前者,对么?




--------------------编程问答--------------------
引用 楼主 u011321421 的回复:
但几乎没有一道题目是.NET相关的,
唯一能有点相关的的就是提到一下数据库(但也没说是MSSQL,是系范式,事务)。

所以,笔试之后,估计复试没戏了~~~~~~~

那些知识不难,只是平时极少用到,也就没去关注,有不熟悉的,有忘记解法的


大家平时去面试,有试过这样(招.NET,却考XXX)的情况么?

还是算那些都是程序员的一些基本要求,必须要会。

面对这种类型的笔试,大家有信心能过?


你应该直接找 HR 问问他是不是把题目拿错了,如果他说“没有拿错”,那么你就被愚弄了。 --------------------编程问答-------------------- 你看来很老实。实际上这个时候你不能及时地提出质疑,那么只能自己吃亏。

考asp.net和html/css,也可以出各种有点技术含量的题目,来考察一个人的水平。文不对题的考试可以拒绝。

如果你应聘当飞机或者高铁上的乘务员,对方却以为你应聘的是工地上的给墙面打石子、抹灰的,你还不离开? --------------------编程问答--------------------
引用 16 楼 sp1234 的回复:
Quote: 引用 楼主 u011321421 的回复:

但几乎没有一道题目是.NET相关的,
唯一能有点相关的的就是提到一下数据库(但也没说是MSSQL,是系范式,事务)。

所以,笔试之后,估计复试没戏了~~~~~~~

那些知识不难,只是平时极少用到,也就没去关注,有不熟悉的,有忘记解法的


大家平时去面试,有试过这样(招.NET,却考XXX)的情况么?

还是算那些都是程序员的一些基本要求,必须要会。

面对这种类型的笔试,大家有信心能过?


你应该直接找 HR 问问他是不是把题目拿错了,如果他说“没有拿错”,那么你就被愚弄了。


HR面谈完之后,她先离开了。她安排一个很年轻(目测20岁左右)的妹子
(负责打杂相关事宜)拿试题给我的。

一开始见到试题时,我也以为是给错试题了。
看了下标题,也没说是面向哪方面的程序员,只是写了XXX公司XX部门,有个职位空格自填。
做了几分钟后,另一个人来应聘的,
我发现他也是做同样一份题目的,想了下,大点儿的公司都会考这些吧,于是继续做下去。

--------------------编程问答-------------------- 计算机网络基础知识()      ---- 问过一些基础的
数据结构,算法(二叉树,递归)    ---- 递归经常考,二叉树遇到过一次
c++(要求写出String的构造函数,析构函数,赋值函数),简单指针问题等   ---- 指针考过 析构什么的没问过
数据库  ----必问


倒是面试一家公司问了很多句柄相关的东西 如何用c++去抓窗口句柄   ---- 基础的达到了
让讲讲各种语言创建的句柄有什么不同  ----没回答上来
然后被各种鄙视... 




  --------------------编程问答--------------------
引用 17 楼 sp1234 的回复:
你看来很老实。实际上这个时候你不能及时地提出质疑,那么只能自己吃亏。

考asp.net和html/css,也可以出各种有点技术含量的题目,来考察一个人的水平。文不对题的考试可以拒绝。

如果你应聘当飞机或者高铁上的乘务员,对方却以为你应聘的是工地上的给墙面打石子、抹灰的,你还不离开?


另外,想知道一下,其实这种没人监考的情况下笔试,可不可以拿手机出来查找的呢? --------------------编程问答--------------------
引用 15 楼 u011321421 的回复:
那请问你能为我提一些建议么?
是把那些基础补回来,还是继续学好高层的东西。
你的观点应该是偏向前者,对么?


我很难用简单的一句两句话来回答你这个问题,但是我明白这个问题对于你来说确实是非常重要的。

在回答这个问题之前我想首先确定一下,你了解这个原则:就是,把事情分成四个象限去对待:
按照事情的紧迫程度,可分为:紧迫、不紧迫
按照事情的重要程度,可分为:重要、不重要

这样我们就能够把事情分为:
(1) 既紧迫又重要
(2) 很紧迫但不重要
(3) 很重要但不紧迫
(4) 不重要也不紧迫

你学习一些高层的、偏应用的技术,这件事可能有时候会显得很紧迫,毕竟你要尽快地解决工作中的现实问题。
而把基础知识补扎实,这件事情绝对很重要,但这是一件长期的事情,需要你重视,但未必需要你很急地去办。

如何平衡呢?生活的艺术往往在于此:没有什么标准答案,而别别人的情况未必适合你自己,你要根据你自己的情况灵活地制定自己的计划。

但是无论如何,只要你不把基础知识当作不重要的事情,那就有救了。

但是既然它是一件重要的事情,你也确实需要重视起来。

在你通常的状态下,每天你处理完那些紧迫的事情之后,有没有可能拿出一个小时来做重要的事情?每天拿出一个小时来,或者平均每天拿出一个小时来,坚持下去必有收获。

到周末的时候,假如你的工作不需要你加班,也许你可以拿出比一个小时多一点的时间,比如周六拿出两小时,周日再拿出两小时?

或者你可以参考我通常的做法:
我一般周六或者周日,难免有应酬,没有应酬也要陪家人。但是我一般会拿出一整天来处理各种“杂物”,外出,见朋友,陪家人出去玩,等等。另外一天我要留给自己,彻底地做一个放松,然后看一点拓宽视野的东西,做一点兴趣爱好方面的事情,看看比较基础的书,做一点思考,等等
我的朋友和家人都知道我的这个习惯,所以如果周末要约我的话,一般要提前跟我说,这样我好确定我是把周六留给我自己,还是把周日留给我自己。
平时的晚上我也一般会留一点时间给自己的,一般是一两个小时。

希望你能计划好你自己的生活与事业,按照你自己的方式,按照你自己的价值观,给自己的各项时期赋予不同的权重,做好你自己的计划。

--------------------编程问答--------------------
引用 21 楼 XinYaping 的回复:
Quote: 引用 15 楼 u011321421 的回复:

那请问你能为我提一些建议么?
是把那些基础补回来,还是继续学好高层的东西。
你的观点应该是偏向前者,对么?


我很难用简单的一句两句话来回答你这个问题,但是我明白这个问题对于你来说确实是非常重要的。

在回答这个问题之前我想首先确定一下,你了解这个原则:就是,把事情分成四个象限去对待:
按照事情的紧迫程度,可分为:紧迫、不紧迫
按照事情的重要程度,可分为:重要、不重要

这样我们就能够把事情分为:
(1) 既紧迫又重要
(2) 很紧迫但不重要
(3) 很重要但不紧迫
(4) 不重要也不紧迫

你学习一些高层的、偏应用的技术,这件事可能有时候会显得很紧迫,毕竟你要尽快地解决工作中的现实问题。
而把基础知识补扎实,这件事情绝对很重要,但这是一件长期的事情,需要你重视,但未必需要你很急地去办。

如何平衡呢?生活的艺术往往在于此:没有什么标准答案,而别别人的情况未必适合你自己,你要根据你自己的情况灵活地制定自己的计划。

但是无论如何,只要你不把基础知识当作不重要的事情,那就有救了。

但是既然它是一件重要的事情,你也确实需要重视起来。

在你通常的状态下,每天你处理完那些紧迫的事情之后,有没有可能拿出一个小时来做重要的事情?每天拿出一个小时来,或者平均每天拿出一个小时来,坚持下去必有收获。

到周末的时候,假如你的工作不需要你加班,也许你可以拿出比一个小时多一点的时间,比如周六拿出两小时,周日再拿出两小时?

或者你可以参考我通常的做法:
我一般周六或者周日,难免有应酬,没有应酬也要陪家人。但是我一般会拿出一整天来处理各种“杂物”,外出,见朋友,陪家人出去玩,等等。另外一天我要留给自己,彻底地做一个放松,然后看一点拓宽视野的东西,做一点兴趣爱好方面的事情,看看比较基础的书,做一点思考,等等
我的朋友和家人都知道我的这个习惯,所以如果周末要约我的话,一般要提前跟我说,这样我好确定我是把周六留给我自己,还是把周日留给我自己。
平时的晚上我也一般会留一点时间给自己的,一般是一两个小时。

希望你能计划好你自己的生活与事业,按照你自己的方式,按照你自己的价值观,给自己的各项时期赋予不同的权重,做好你自己的计划。



能听听前辈们的经历表示十分带劲,XinYaping大叔,有时间的话要不你也发个个人IT的经历。想看 --------------------编程问答-------------------- 考常用数据结构、经典算法我完全理解并坚决支持,如果改为要求用C#来实现这些个内容我觉得非常正常,反正我公司面试是一定必须要求的
让你详细解释指针、堆、栈、寄存器、原子操作这些也非常合理。
甚至是考察你的SQL,网络协议栈的理解和socket也是应该的。
但给.neter考C++,我觉得很奇葩 --------------------编程问答--------------------
引用 21 楼 XinYaping 的回复:
希望你能计划好你自己的生活与事业,按照你自己的方式,按照你自己的价值观,给自己的各项时期赋予不同的权重,做好你自己的计划。


很感谢你的每个耐心回复!
从年初的时候开始,我慢慢养成每天自己总结一些技术知识,
如用写日记(电子形式)的方式作记录。

我有个疑惑:
#这些年,当我想坚持做某件事的时候,一开始觉得这件事很有意义,于是每天或经常去做。
这件事,做了一段时间之后,发现没什么收获或觉得这事当初的规划就是错的。
于是,放弃了继续做下去,导致计划流产(或自我安慰说是 回头是岸)了。

假如,当我开始对上面提到的补回基础知识开始重视(很重要,但不紧迫)
日均1小时去学习它,我就担心学了一段时间之后,在实际工作中根本用不到,这样我就会产生刚才提到的那个(#)疑惑。

不知道大家是否有过同样的疑惑。

引用一段话:

过早退出的原因往往在于对于未来的不确定性,对于投资时间最终无法收到回报的恐惧,感受到的困难越大,这种恐惧越大,
因为越大的困难往往暗示着这个 任务需要投资的时间越大。
所以其实我们都是直觉经济学家,当我们说“畏难”的时候,
其实我们畏惧的不是困难本身,而是困难所暗示的时间经济学意义。//这句话觉得挺有道理。

---《暗时间-刘未鹏》 --------------------编程问答-------------------- 你要3k 我考3k的题 你要5k给5k的题 要10k给10k的题,再高了我暂时给不起,所有现在给10k的 

去bat都是20k的人.....

不一定搞.net就考.net的题,也可能考算法

算法是不是能用到,看工种,所以这种题有意义 --------------------编程问答--------------------
引用 7 楼 XinYaping 的回复:
Quote: 引用 2 楼 u011321421 的回复:

Quote: 引用 1 楼 caozhy 的回复:

因为培训班很少培训C++,所以先来一轮淘汰下青鸟黑马蓝翔。


难道真是这个初衷?~~


也伤了大专生~~我们的课程也没有c++..数据结构。。。
后来只上过一些算法设计选修课而已。

而在平时的项目使用中,很少用到,也就没怎么去关注。。。


如果说伤了你这样的,无论大专也好培训班也好,总之就是基本的数据结构都不懂的人,那我觉得这家企业是英明的。

我觉得,首先你是个程序员,其次你才是.Net程序员。
作为一个程序员,问你这些基本的数据结构知识,并不过分。

你看我,虽说我也是.Net程序员,但我懂基本数据结构和算法,懂一点单片机,能用C写一点Linux上的和DSP、AVR上的应用程序,做过大型网站的系统架构,开发过WinCE平台的自动化测试框架,做过分布式、云计算,做过数据库调优,熟悉Scrum,做过Scrum master,懂ALM(Application Lifecycle Management),懂DO-178B,获得过六西格玛绿带认证,英文熟练,能在电话里和美国人、印度人探讨技术与业务方面的问题。今天我是.Net程序员,明天如果项目需要,我也可以是数据库程序员、C/C++程序员。因为我是真正的程序员,无论.Net,还是C++,那些都只是我的工具,我从来不受工具的限制,什么工具好用我就用什么工具。


我是真正的程序员,还打上红字体。感觉你很装逼.... --------------------编程问答-------------------- 其实当你静下心来去学习数据结构和算法的时候,你会发现他们比学那些技术有意思多了。
补充:.NET技术 ,  非技术区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,