OSCHINA 问答合集[6]:技术强的程序员自己开发软件卖,不给人打工看人脸色,可行?

局长 发布于 11/15 23:10
阅读 3K+
收藏 19

开源中国问答区新栏目“OSCHINA 问答合集”上线啦,本期收录了 9-10 月高热度的问题及回复(吐槽),希望能让你有所收获~!

进入问答区:

你可以在技术问答版块畅聊技术
你可以在职业生涯版块寻道解惑
你可以在IT大杂烩版块和大家谈笑风生

我们希望:

这里可以成为一个能让大家有所收获的地方。因此,这里拒绝攻击、拒绝谩骂、拒绝无脑黑。
这里可以沉淀大家各种的技术问题。无论是新手的基础问题,还是资深开发的深度问题,都是有价值的。
这是一个更纯粹讨论技术的地方,能给程序员提供一片友好交流的清净之地,不懂的可以在这里寻找帮助,懂的可以在这里帮助别人。

总之,

在这里你可以向所有人提问。
反正你的问题可能会没答案。;-)

==========分割线==========

开源中国技术问答

@码农N号:前后端都要写的一些问题。

介绍:主要是写后台的,但是公司没做前端的,只能自己写前端,前期直接下的jquery一些后台管理模板来搞。一般技术栈是intellij idea里面前后端代码都放在一起,当然也可以前后端分离。后面发现了用jquery开发很难做到组件化还有一些其他问题。并且在学前端过程发现了好多东西,并不比后端少。然后自己学了react,准备前端换成ant一套。问题

1:前端开发软件?(使用什么编程软件开发前端代码一般前后端分离或者怎么在一个项目开发前后端代码)
2:详细开发流程(如首先yarn启动前端项目,然后打开变成软件开发前端代码,开发完成了打包复制到后台项目中去)

>>>无名的骑士 
一般都是http通信,后端restful写好,前端写对应的ajax,jQuery只能算库,想要组件化的话就angular或vue,前后端文件夹归好类,命名统一下,没有什么固定的开发工具,顺手就好

>>>王再壮
问题1: 前端开发软件?使用idea、webStrom都可以。既然前后端分离,你就把他分离成两个项目,接口定义好。前后端各自写模拟报文开发测试。后台项目功能就是提供接口,接收返回数据。
前端项目就是用户界面,需要数据就去后台项目存取。后台的话就不必多说了,json结构数据通信弄好,前端项目就能运行了。
部署到服务器上,通过Nginx去进入到你的前端首页。用户访问的是你的前端项目,你通过前端调用的后台接口。像你说的,前端项目打包复制到后台项目中去?不是这样用的= =

@樱木花道VS康:死循环怎么写比较合适?

大家好,我有这样一个需求,我要去一个文件夹中检索文件,只要有(xml),我就读取然后(业务操作)再然后删除文件,应该是一个死循环吧,不断的去指定的文件夹下读取,该怎么写比较合适呢?死循环不敢轻易写,,,while(true)?

>>>蓝水晶飞机 
while(true) 用户会 Kill 你进程的。
正常来说,还不需要死循环太着急,你只需要让线程睡眠一会,再进行检测文件一次,然后处理完再循环:

while(true) {
    List<java.io.File> list = detectXMLFiles(); // 检测文件
    handleXMLFiles(list); // 处理数据
    Thread.sleep(1000); // 1s 睡眠等待
}

如果想让线程可控退出,那就将while(true)改为while(runFlag),只要将runFlag设置为false,线程最后会正常结束。

>>>坏_坏 
为啥不做定时任务呢?每分钟执行一次,或者更快

@那位先生_ :一道算法题,有兴趣的聊聊思路啊

112439_S98B_438301.png

>>>ling0
很有意思的题目啊,来简单分析一下。
假设把 Pi 的前 10 万位数字一位一位的相加,那么结果一定不到 90 万,因为不可能每一位都是 9。
那么再进一步猜测一下,假设 0 到 9 出现的概率是均等的,那么结果应该在 45 万左右。
简单的加一下,位数就从 10 万位一下子减到了 6 位,处理 6 位明显要简单的多。

有了这些猜测,那么就验证一下吧。
写一个小程序,把 Pi 的前 10 万位每一位加一下,结果是 449323,果然,和猜测的差不多,无理数的随机性还是不错的。

如果能有一个方法把 449323 变成 500000 就好了,直接就加到个位达到目标了。
猜一下,这个数应该大于 50677,因为 49323+50677 = 100000。
但是,计算一下马上就能把 50677 排除,因为假设 5 个一个数拼成一个 50677 ,那么还要减去 5+0+6+7+7 = 25。
这里减的原因是, x+y+z 变成 100x+10y+z 时要减去 x+y+z ,因为个位数相加的时候已经算进去了,这里算是的增加了多少。
这是不可能的,50677 到 50699 之间一共也就 22,所以废弃。
到这里好像就看到曙光了,把 50677 加大到 50777,这样 49323+50777 = 100100 增加了 1 百。

如果真有拼加到一起增加 50777 就相当不错了,但是再简单的判断下,不必要这么精确。
只要把 449323 变成 5000xy 就可以了,只要 x+y 小于 5 就可以了。
范围一小子扩大了很多,不用认死 50777 了,找个 507xy 的就可以了。
随便找个比如, 50728。 50728-22+449323 = 500029。
不错,0 越多越好,把 29 变成 100 就容易多了。
随便找个试下, 97-16=81。
500029+81=500110,每位相加等于 7。
已经满足要求了。

写程序怎么写呢?
第一次单个位相加走一遍。之后就是加减计算加数字搜索了。
分析到这儿,写程序已经没什么难度了。
有约束条件,有目标,可以动态规划了。

因为这数字相加结果的第一位太小,位数太少不具有代表性。
如果是任意长的任意数字序列,第一次个位加的时候如果对结果不满意,把第一次相加的结果变成 1 或者 2 比较小的数开头的这样的,后面会简单的多,因为约束减小了,可用数范围扩大了。

注:不保证以上出现的数字都正确,仅用做示意。

>>>弦_ 
每次相加第一方案是默认以位数中间分为两个数字相加(每次加完后保证长度最多是上次的一半+1),第二方案是找到相加能凑出最多0的两个数字,两个相加方案相比较取最优

>>>OffSwitch
两步应该就可以了,如何减少之后的加法?题目中给出的实例其实已经很明确,1.计算之后结果的各个位数相加小于10(199之后1+99,成了100,100的各位相加小于10,因此避免接下来多余的相加),2.题目中也说明“在恰当位置插入+的算法”,请注意“恰当位置”这几个字。

那么第一步相加的结果范围应该在449323~10w个数之间,而最终结果为个位数,449323最后的结果是7,那么应该就可以找到这样的一个数,如1111111、11110111、111101011,1111012等,之后可能就像ling0那样找一个定值,然后就是搜索了。

@超载先生:java11发布了,像阿里这样的大厂会如何选择?

java11发布了,其中有一个大家都非常关注的问题,就是oracle对java的许可证做了修改。
所以想问问那些大厂的同学,你们公司是如何打算的?继续保持java8不再升级,还是逐渐过渡到java11?

如果打算过渡到java11的话是购买商业的 oracle jdk呢还是打算一直追新使用oracle openjdk呢(看roadmap好像openjdk没提供lts)?甚至是还有更高级的计划?

>>>魔力猫
是否升级JDK,看的不仅仅许可证而是迁移成本。

不迁移,你也要考虑老JDK的更新,Oracle老JDK升级维护发帖咨询也是要钱的。迁移,则要考虑老代码兼容性、更新代码成本,运维风险,用这些与JVM变更带来的性能提高,维护简化进行对比。

升级是大势所趋,无非早晚而已。

>>>码农N号
等你负责几个项目,jdk用的1.6,其他jar包也依赖的1.6,你会轻易换1.8, 11吗?低版本很多语法、类在高版本都废弃了,你敢换版本吗?
换句话说一个项目本来稳定的很,还有项目你只负责一部分,你敢冒着风险替换Java版本吗?你替换Java版本必然要替换到依赖Java版本的jar包。
当然阿里这些大厂会慢慢使用高版本的jdk,替换的话,反正他们有钱有人,换也正常不换也没事。

@ye_zhao:java中产生的随机数都是伪随机数吗?

java中Random类产生数是伪随机数,有什么办法可以实现真随机吗?还有有随机因子这个概念吗?有什么作用?希望大神们可以帮忙解答一下

>>>tcxu
通过真实随机事件取得的随机数才是真随机数。因此,没有办法可以实现真随机数。只要这个随机数是由确定算法生成的,那就是伪随机。它看似随机实质是固定的周期性序列,也就是有规则的随机。

>>>Devoes
别说java,只要是传统计算机产生的随机数,一定是伪随机数。说到底只是用了一个非常复杂、周期很长的数学变换公式得到的。

>>>浣花孤叶
你们知识也太落后了。计算机完全可以通过收集外界的各种随机因素产生真随机数,例如用户按键的时间、网络延迟之类的。操作系统有一个叫熵池的概念,可以用来产生随机数,大体上就是这个原理

>>>祺爸PiscDong 
听过一个说法,唯一的真随机数是宇宙微波背影辐射

>>>银杏果果
真随机数是不存在的,任何算法都是伪随机数,不管是java还是其它计算机语言。
也就是说在计算机世界里,真随机数是无法自动产生的,包括硬件,而硬件驱动仍然是软件代码,再者你知道外界因素的情况下去确定随机数,此时或许就是一个必然事件,一个必然数,而不是随机数。包括现实世界,我们也不一定能找到随机数,而只有随机事件,或许随机事件发生的时间点是随机数吧。忘记是一部电影还是真实事件,一个数学家总想用数学知识解决一切发生或即将发生的事件,包括一切随机事件,……后面好像疯了。

职业生涯问答

看看程序员关心的职业生涯问题都有哪些 ——

@myexam123:技术强的程序员,自己开发软件卖,不给人打工看人脸色,可行?

技术强的程序员,自己开发软件卖,不给人打工看人脸色,可行?

>>>刘建业
不给人打工是可以的,不看人脸色?不存在的。打工受的那点气,和老板受的气比,那根本就不算什么。

>>>开源中国马桶盖 
不可行..除非 你再某个行业里面 非常牛逼... 要不然你做出来的软件 没人要是真的..因为现在的客户都比较任性..都喜欢按照自己的规则做事,你没有非常强大的背景 以及非常大的名气 他们不会买你账的...要是 你能做到 在某个行业的行业软件中 你就是规则的化身,那么客户要让改东西的时候 你就可以非常强势的怼回去, 但是 你是吗?呵呵....

>>>netkiller-
你有多强呢?现在团队分工明确,各司其职。

你能搞定交换机配置?你能搞定运维吗?你能设计产品原型吗?你能平面设计吗?你能切图吗? 你能做前端开发吗?你能做后端开发吗?你能做 APP 开发吗?你能搞定市场吗? 你能搞定运营吗?

>>>阳光暖暖
可行,如果创业失败,需要借钱可以找我。我是贷款公司的

>>>苏大泉
观点很幼稚,技术强和自己做能成功是两会事,没有必然关系,最简单的判断方法  你看看公司老板有几个技术出身的

@石岩:如何招募创业合伙人?

现在想自己创业做互联网+大健康,如何招募创业的技术团队?

>>>牧野开源
这年头,有想法的人比精子还多,能让想法落地的人比卵子还少,再加上有些过河拆桥的创屎人造成的不良影响。就造成绝大多数想法会——然并卵。

>>>南山北寺
如果工资高的话就直接上招聘吧,如果待遇不咋的的话建议百度:如何画饼白嫖程序员。

>>>谢小呆
我之前在一家创业公司做技术“负责人”,被创业伤的技术人太多了,在简书上写了篇文章吐槽:https://www.jianshu.com/p/f1c438a06032。技术人想通过创业找到自己的突破口,而有想法的人更希望找到靠谱的技术人一起合作。差别在于有想法的人太多了,并不是每个想法都能落地,靠谱的技术人虽然也不算少,但是他们并不愁工作,所以如果想找到一个靠谱的技术人我认为起名要对你们未来要做的事有共同的愿景,就是我们常说的共祈愿景。

能不能把你的梦想影响身边的人,并且让这个梦想成为身边人的梦想,这是作为一个创业领导者第一步要做的。

@mojiayi:技术面试内容难道还有地域差别?

遇到好几个应聘者,面试过程中问了几个问题回答不上之后,跟我说不知道长沙的面试要求是什么,感觉和上海深圳的不一样,我也在上海呆过很多年,参加过不少面试,一个普通的java开发岗位面试内容大同小异。

我从来不问造火箭级别的问题,都是些市面上最主流最常见的拧螺丝级别的问题。工作几年都没有积累,说百度一下就知道了,我只能说回家等通知了。

>>>木九天 
现在最聪明的程序员不是你问一个面试题就能回答出来的问题,也不是说百度就能做出来,而是注重他的实际效率解决问题上,所以你要问的是思路,而不是会不会,百度上有能不能快速解决的问题。综上所述,你的面试并不是完美。

>>>百度得来终觉浅 
问些实操题比较靠谱 有项目经历的人都会遇到 比如说什么内存泄漏啊 流水号自增不重复啊 什么的会不会 肚子有没有货一下就懂了 我的意思是你可以直接问一下你现在产品线里遇到的一些坑点 人家如果知道那就说明经验对口

你也希望自己的提问/回答上榜?欢迎大家前往>>>技术问答区,多提问,多回答,挣积分,领勋章!
遇到技术问题,就上开源中国问答区

==========分割线==========

OSCHINA 问答合集[1]:老大竟然说我不会写 SQL ……
OSCHINA 问答合集[2]:我有一套高峰期每秒钟约有 1 万人下单的系统,遇到了关于 Java 高并发的问题
OSCHINA 问答合集[3]:无法确定自己的方向,又无法转行怎么办?
OSCHINA 问答合集[4]:入职一个月发现公司项目代码管理乱、代码烂,该留还是走?
OSCHINA 问答合集[5]:8012年了,想用 MongoDB 取代 MySQL 可以吗?

加载中
1
哈哈歙整合
打工只看老板一人的脸色,单干你得看所有客户的脸色,还得跟别人谈价,收款,有可能忙活一年还收不到款
liushide
liushide
哈哈,看来你看得比较透彻啊。
0
mojiayi
mojiayi

以为单干就不用看人脸色的人,真的是想多了,虽然我没有自己单干,但是我那些在家做生意的亲戚年底收账有多看人脸色我还是知道的。

0
山东-小木
山东-小木
我现在就在单干,没什么大问题
0
blu10ph
blu10ph

看看linus最近的新闻,还想不看脸色?~

0
艺诚网络
艺诚网络

想干就去试试,大不了失败了再去打工!

当你回忆人生的时候不是做错了什么而后悔,而是没有做什么而后悔。

0
字节跳蛋
字节跳蛋

能问出这样问题的人,情商也是低的可怜,还是别单干了

0
justintung
justintung

开发得出软件和技术好坏没有关系,当然好的软件,需要好技术

但是软件能不能卖出去还是另外一回事。

0
Daniel-01
Daniel-01

单干主要是为了实现财务自由

返回顶部
顶部