フリーランスのエンジニアには、いくつかの職種が存在します。具体的には、システムエンジニア、プログラマー、Webエンジニア、Webデザイナーなどです。
このうちシステムエンジニアは、クライアントのニーズに応じてシステムの設計や要件定義を行う職種で、場合によっては設計書に基づいてシステムの構築や運用までを担うケースもあります。そのため、システムエンジニアにはプログラムについての知識やスキルだけでなく、クライアントとスムーズにやり取りできるだけのコミュニケーション能力も求められます。
次に、プログラマーは、その名の通りシステムのプログラミングを行う職種です。プログラミングスキルに加え、様々なプログラミング言語を使いこなせる力量が必要になります。
プログラマーを目指すのであれば、なるべく複数のプログラミング言語を習得するように努めるようにしましょう。できればJavaのように、汎用的に用いられるものをマスターしておくのがおすすめです。
WebエンジニアやWebデザイナーは、主にWebサイトやWebアプリに用いられるソフトウェアを取り扱う職種です。前者は主にWeb関連のソフトウェアの設計や構築を行う役割を担うのに対し、後者はそういったソフトウェアを用いて表現される画面のデザインなどを担当することになります。
このようにフリーランスのエンジニアといっても様々な職種があるので、それらの中から自分に合うものを選ぶようにするとよいでしょう。