Sou desenvolvedor Java e trabalho na área, vou deixar minha pequena e humilde sugestão:
-> O Swing ta morto, não é que está morrendo, ta morto mesmo, mataram mas não enterraram, a própria Oracle confirma que o JavaFX é um replacement do Swing, segue o link: http://www.oracle.com/technetwork/java/javafx/overview/faq-1446554.html#6, inclusive a mesma aconselha a desenvolver usar o JavaFX, mas deixa uma dica, é possível utilizar o Swing junto com o JavaFX.
Baseado nisso, eu aconselho a ir direto pro Java FX, eu posso lhe afirmar que ele tem uma interface GUI um pouco mais bonitinha que o Swing, fora que com Java FX você pode utilizar recursos de HTML para desenvolver sua aplicação, como CSS e a própria linguagem HTML para criar componentes. E ainda tem uma IDE para o mesmo, chamada Scene Builder que não gera aquele lixo de código que o Netbeans gera, e você ainda consegue trabalhar com XML para escrever sua GUI, fora o recurso de arrastar e soltar.
No meu trabalho a gente não usa mais o Swing, estamos usando o Java FX, e tem muitos programas inclsuive open sources distribuido por ai.
-> Sobre por onde começar, eu começaria do backend, mas se você tiver uma equipe nada impede de realizar o desenvolvimento em paralelo, backend e frontend, porém, particularmente no frontend eu prefiro começar pela interface visual e depois codificar, até porque não sou expert em design, mas até quem manja de design já ouvi falar que prefere desenhar a tela e depois escrever código.
Finalizando, aconselho a usar JavaFX, mas você é obrigado? Não, você é livre pra usar a linguagem e a ferramenta que quiser, tem gente que não sai do Swing porque já tem tanta experiência e conhece tanto o Swing que não vale a pena gastar tempo desenvolvendo em Java FX, o cara consegue terminar um sistema em Swing em 1 semana enquanto que em Java FX ele vai ter que reaprender algumas coisa e prefere não querer arriscar, mas tem gente que gostou do JavaFX até pelo design novo e pela abordagem diferenciada(utilizando XML, CSS e etc.) que decidiu largar o Swing. Sobre por onde começar se tiver uma equipe média separe o backend do frontend e comece os dois juntos, sem problemas, agora se tem uma equipe bem pequena, comece com o backend, até mesmo porque lá que vocês irão validar as regras de negócios do sistema, o front é questão de usabilidade. Quando for para o frontend comece pelo Design e depois codifique.
Eu sou programador, mas nunca fiz questão de defender uma linguagem, nem de atacar outra, eu gosto é de programar, independente de linguagem, umas agradam mais que as outras pela simplicidade e/ou facilidade, mas você consegue desenvolver a mesma coisa com qualquer linguagem, até com Javascript dá pra fazer aplicativos desktop, com Lua e C você faz aplicativos Web, tudo é questão de momento, nós programadores sempre estamos querendo alguma coisa que nos ajude na nossa profissão, claro, temos o direito de escolher aquilo que nos faz sentir mais produtivos, por isso tudo tem um tempo, houve um tempo em que tudo era Java, hoje já muita coisa é Javascript/Node, e quem sabe no futuro o Java volte com algo inovador ou o PHP tenha uma remodelagem que o torne mais atrativo, a verdade é que queremos fazer o melhor para o nosso cliente da melhor forma, brigar por linguagem de programação é coisa de criança, programadores novatos ou pessoas orgulhosas que pararam no tempo e tem medo das inovações, um nome resumido pra resolver tudo isso se chama humildade, com isso você cresce e vai longe.
Abraços.