希望软件工程,程序员能看到这个问题,完全零基础想要开发应用,比如VPN应该学习哪些技术?
就是完全零基础,想报名培训班去学习,应该选择哪个方面?
比如谷歌商店里的vpn都是用什么技术开发的?
看了好多培训机构的课程,有python,java, go, linux运维,前端等等。
该选择哪个?
希望专业的程序员,软件工程师能解答,非常感谢。
比如谷歌商店里的vpn都是用什么技术开发的?
看了好多培训机构的课程,有python,java, go, linux运维,前端等等。
该选择哪个?
希望专业的程序员,软件工程师能解答,非常感谢。
你真的需要學習很多,計算機科學的基礎知識,算法,數據結構,通信協議等,至於什麼編程語言不是重點。你所指出的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开始学起。
以及不同平台用的语言都不一样
iOS/macOS: Swift
Android: Java/Kotlin
Windows: C#
Web: JavaScript
零基础的话建议从Java/Python开始学起。
有经验的人去学技术,学了就能用上,没经验,一窍不通,给你积木也搭不起来。
如果你的想法是从服务器到客户端,通通自己搞定,没经验搞的慢,时间一长消耗斗志,一鼓作气,再而竭,三而衰。
所以你需要一个工作,让自己变得不那么零基础,
如果你的想法是从服务器到客户端,通通自己搞定,没经验搞的慢,时间一长消耗斗志,一鼓作气,再而竭,三而衰。
所以你需要一个工作,让自己变得不那么零基础,
go吧,简单易懂,适配性好
尤其适合各种跨平台的轻量级应用
著名翻墙软件clash就是基于go开发的
尤其适合各种跨平台的轻量级应用
著名翻墙软件clash就是基于go开发的

不用学习哪些技术,疯狂支持无界和自由门,让它们永远不会被封住,然后广传,就人人都能翻墙了。
TCP/IP 协议 卷一到卷三 , C/C++ 编程,
这两门就够了,
然后去同性交友论坛看开源项目
这两门就够了,
然后去同性交友论坛看开源项目
语言是次要的,要做vpn需要了解网络编程的原理,可以去找点网课学一下。
我在从事软件开发工作,算是科班出生,研究生是软件工程专业的,本科不是相关专业。给你的建议是自学,报培训班会浪费钱和时间,因为培训班是赚钱为导向的,要么你去读大学读研究生去。vpn本身这个技术是不难的,难得是需要和墙(gfw)作斗争,建议你找一门语言学习,例如python,go等,语法等基本掌握后直接找开源项目,推荐shadowsocks,项目代码不多,动手实践,把项目跑起来,在过程中发现不足再另学不足之处。工作的人想提升能力,也得靠自学。

骚年有想法!
盲猜一下,能开发出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应用也是应用(狗头
零基础先学习如何自我学习。不然如果自己不能给自己开出书单,问题一个个问下去得累死你。
同上,语言是次要的,重要的是通信原理。几个优秀的代理软件 v2ray, ss(ssr) 在github 上都有源码,可以自己找来看看。 vpn 项目没有太关注
了解这个最好了解是了解下历史, ssh tunnel 开始的逐渐演进
了解这个最好了解是了解下历史, ssh tunnel 开始的逐渐演进
说实话,写个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语言。
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语言。