希望软件工程,程序员能看到这个问题,完全零基础想要开发应用,比如VPN应该学习哪些技术?

就是完全零基础,想报名培训班去学习,应该选择哪个方面?

比如谷歌商店里的vpn都是用什么技术开发的?

看了好多培训机构的课程,有python,java, go, linux运维,前端等等。

该选择哪个?

希望专业的程序员,软件工程师能解答,非常感谢。
unchained_wen 中国只是个地理名词
说实话,写个VPN还属于比较进阶的开发了。

1,最大的头就是 计算机网络知识
2,掌握至少一门编程语言
3,多线程/异步IO 要搞清楚,就算你用GO来写,也至少要知道原理

以上的话,你可以写一个VPN的核心,类似 v2ray-core, clash-core,他们可以用作服务器,也可以用作客户端,但是客户端呢一般还要搞下UI

比如你要做成App,如果你要跨平台(PC, MAC, Android,Linux) 的客户端,那么你需要:
1,至少一种 跨平台的 UI框架
2,和该平台相关的系统知识
3,如果Android平台,那么需要JNI调用等等这些知识,如果是要Android原生,那么还需要懂Android SDK和Java或者Kotlin。

如果还要iOS端,那么:
1,iOS的Network Extension 需要了解
2,UIKit或者SwiftUI一种
3,swift或者Objective-c中的一种语言
4,需要高效的话,那么C语言。
同上,语言是次要的,重要的是通信原理。几个优秀的代理软件 v2ray, ss(ssr) 在github 上都有源码,可以自己找来看看。 vpn 项目没有太关注 

了解这个最好了解是了解下历史, ssh tunnel 开始的逐渐演进
零基础先学习如何自我学习。不然如果自己不能给自己开出书单,问题一个个问下去得累死你。
trtrtr2 迟到的正义,并非正义
https://telegra.ph/file/1e414a9c83d9eaf563e0a.jpg

骚年有想法!

盲猜一下,能开发出VPN的程序员,大概在程序员群体里不足5% 

粗略说下目前能想到的需要掌握的知识

1. 编程语言 
1.1 服务端开发,c/c++/rust/go/python 得会一个
1.2 客户端开发,kotlin/swift/java/js/dart 得会一个

2. 网络通信理论,比如网络架构,各个分层的通信协议

3. 服务端系统编程(linux socket编程)
3.1. *nix的常用操作
3.2. 服务器运维知识
3.3 云服务器怎么买,怎么配

4. 客户端编程 (ios, android, pc, mac,浏览器插件)
4.1 如何注册成为某平台开发者
4.2 应用如何打包发布

5. 现有翻墙工具的设计思路

6. 墙的工作原理


如果只是开发普通应用的话,学会js就行了,其他都可以不学。web/node应用也是应用(狗头
语言是次要的,要做vpn需要了解网络编程的原理,可以去找点网课学一下。
ilovekaris6458 哇哈哈哈
我在从事软件开发工作,算是科班出生,研究生是软件工程专业的,本科不是相关专业。给你的建议是自学,报培训班会浪费钱和时间,因为培训班是赚钱为导向的,要么你去读大学读研究生去。vpn本身这个技术是不难的,难得是需要和墙(gfw)作斗争,建议你找一门语言学习,例如python,go等,语法等基本掌握后直接找开源项目,推荐shadowsocks,项目代码不多,动手实践,把项目跑起来,在过程中发现不足再另学不足之处。工作的人想提升能力,也得靠自学。
你真的需要學習很多,計算機科學的基礎知識,算法,數據結構,通信協議等,至於什麼編程語言不是重點。你所指出的VPN其實特別簡單,就是在特定協議層封裝基本的協議層,例如第二層或者第三層直接封裝進HTTPS中。上面的有些回复把VPN和代理混淆了。
路人丙 路人丙
不是每一個人都可以彎道超車的. 看看有沒有學校可以讀.
真的要說起科目, 三天三夜講不完, 這裡的大神又散在各個領域. 建議南軒北轍.
如果是我, 我會說從組合語言開始(這不現實計).

如果沒有辦法去學校, 建議從工作中開始學習.
做培训基本上学不到这些知识,可能网安方面培训会接触到一些,推荐还是自学一门语言,看一下io编程,然后阅读一些简单代理协议的源码,比如socks 5,http proxy。想开发给你个思路:网络编程可选用rust 或 go做lib。两种语言上都有成熟的代理库,可参考,vpn(代理意味,不涉及虚拟网络)不困难,底层使用tls1.3,上层套个socks5,3天内可开发完成,安全性不会比v2Ray,ss差,目前自己用的就是这种解决方案。如果是手机app的话,要求就比较高了,需求了解的库:tun2socks,lwip,需要有协议栈的知识,客户端开发推荐使用flutter,如果需要支持udp还需要自己定一个协议,udp直接过墙可行性不高,容易断流,需用udp over tcp。
LZ先明确自己想要写什么…… 
以及不同平台用的语言都不一样
iOS/macOS: Swift
Android: Java/Kotlin
Windows: C#
Web: JavaScript

零基础的话建议从Java/Python开始学起。
有经验的人去学技术,学了就能用上,没经验,一窍不通,给你积木也搭不起来。
如果你的想法是从服务器到客户端,通通自己搞定,没经验搞的慢,时间一长消耗斗志,一鼓作气,再而竭,三而衰。
所以你需要一个工作,让自己变得不那么零基础,
go吧,简单易懂,适配性好
尤其适合各种跨平台的轻量级应用
著名翻墙软件clash就是基于go开发的
范松忠 黑名单 吾爱人类公敌!宁做伊朗犬,不做中国人!中国、中共、中文,都别想奴役我!习来曼尼和王培尔,来找我啊!有种加我实名制微信抖音啊!我死后,能求得一面美国国旗披上烧掉,或把我烧掉撒入大海,死无葬身之地,也不进中共方舱。誓死反送中,绝不落叶归中!
不用学习哪些技术,疯狂支持无界和自由门,让它们永远不会被封住,然后广传,就人人都能翻墙了。
pcxhz 品葱小学生
TCP/IP 协议 卷一到卷三 , C/C++ 编程,
这两门就够了,
然后去同性交友论坛看开源项目

要发言请先登录注册

状态

  • 最新活动: 2020-09-16
  • 浏览: 4192